Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Множество, состоящее из кортежей

Александр Снигирев Ученик (105), на голосовании 3 недели назад
Изучаю сейчас python по книге васильева и в теме множества. В заданиях для самостоятельной работы есть задание: " напишите программу для создания множества, элементами которого являются кортежи(по 2 элемента в каждом) с нечетными числами: (1 , 3), (3 , 5), (5 , 7) итд."
так вот, написал я програмку следующего вида:

i = 5

resSet = set()
k=1
for j in range(i):
tupleR = (k,k+2)
resSet.add(tupleR)
k+=2
print(resSet)

выполняю, и в результат выходит {(5, 7), (7, 9), (9, 11), (1, 3), (3, 5)}

дебажил уже, (1, 3), (3, 5) идет нормально, а вот с (5, 7) начинается какая то логика вообще непонятная мне:
1)при добавлении (5, 7) в сет, получаем (5, 7), (1, 3), (3, 5)
2)при добавлении (7,9) получаем (7,9), (5, 7), (1, 3), (3, 5) тут еше вижу какую то логику
3)но как только добавляем (9,11) мы получаем не (9,11) (7,9), (5, 7), (1, 3), (3, 5), а (5, 7), (7,9), (9,11), (1, 3), (3, 5)
Можете пожалуйста объяснить по какой логике оно работает и как можно реализовать то, что требует автор
Голосование за лучший ответ
Professional Professional Мыслитель (7697) 1 месяц назад
main_set = set([])

for i in range(1, 100, 2):
main_set.add((i, i+2))

print(main_set)
Александр СнигиревУченик (105) 1 месяц назад
благополучно позаимствовал этот код, получается то же самое, что и у меня, только в пределах 100))
Андрей Высший разум (254055) 1 месяц назад
А математику учить не пробовал - которая объясняет свойства математического объекта "множество"?

Множество - это НЕУПОРЯДОЧЕННЫЙ набор значений. НЕ ВАЖНО, в каком порядке элементы перечисляются при итерации по множеству. И ты НИКАК не можешь управлять этим порядком. Python сам решает, в каком именно порядке значения будут перечислены.
 i = 5
resSet = {(k, k + 2) for k in range(1, i * 2, 2)}
Александр СнигиревУченик (105) 1 месяц назад
это то я понимаю, однако другой вопрос, че тогда от меня автор то хочет)
Андрей Высший разум (254055) Александр Снигирев, Не читал. Но, полагаю, автор хочет получить заданный забор кортежей - НЕЗАВИСИМО от того, в каком порядке эти кортежи перечислены при выводе.
Похожие вопросы