Я новичок в Python и пишу код для объединения элементов. Итак, у меня есть, например, этот массив

[1, 12, 13, 15, 21, 24,28, 29, 35, 36]

Я создаю свой набор предметов следующим образом:

for e1, e2 in combinations(array, 2):
    item = e1| e2 # union of two sets

Так я получаю

[1,12] [1,13] [1,15] [1,21]

А потом

[24,1]

Вместо того

[1,24]

А потом

[1,28]

Комбинация вполне нормальная. Во всех итерациях у меня возникала эта проблема, знаете ли вы, почему это происходит.

Любая помощь будет принята с благодарностью.

-1
Carlos Escudero 9 Окт 2021 в 21:33

2 ответа

Лучший ответ

Я уверен, что ваше замешательство вызвано следующим:

>>> {1, 12}
{1, 12}
>>> {1, 13}
{1, 13}
# ...
>>> {1, 21}
{1, 21}
>>> {1, 24}
{24, 1}  # first odd example

Что ж, множества по своей сути неупорядочены, поэтому {1, 24} и {24, 1} - это всего лишь два представления одного и того же.

0
schwobaseggl 9 Окт 2021 в 18:43

Как сказал @schwobaseggl, наборы неупорядочены, и если вы хотите, чтобы они были упорядочены, вы должны использовать sorted(item) или list(item)

0
dimsdewn 9 Окт 2021 в 18:57