У меня есть вопрос о ненаправленности наборов.Python: устанавливает и set.intersection - случайный порядок вывода?
Этот код:
#Set1 is 'a' to 'e' in alpha order
set1 = {}
set1 = {'a', 'b', 'c', 'd', 'e'}
print('\nSet1 :', set1)
#Set2 is 'f' to 'a' (missing 'e') in reverse-alpha order
set2 = {}
set2 = {'f', 'd', 'c', 'b', 'a'}
print ('Set2 :', set2)
print ('Common to both sets:', set1.intersection(set2))
... дает случайное упорядочение элементов в set1
, set2
и в результате set.intersection
:
Set : {'a', 'c', 'b', 'e', 'd'}
Set: {'a', 'c', 'b', 'd', 'f'}
Common to both sets: {'a', 'c', 'b', 'd'}
Хотя не проблема сама по себе, на мой вопрос это: существует ли для этого набор алгоритмов? Или я могу (по возможности) использовать это свойство для генерации случайных списков элементов, представленных в двух списках (т. Е. Действительно ли это случайным?). Кстати, я понятия не имею, почему я, возможно, захочу сделать это, подумав вслух.
Наборы не упорядочены. Вы не можете полагаться на элементы в наборах, имеющих какой-либо конкретный порядок, и вы не можете полагаться на них как «случайные». – BrenBarn
@BrenBarn Помимо удаления дубликатов, их использование должно быть довольно эзотерическим. Я буду придерживаться списков и кортежей, пока я еще на первой неделе обучения Python. Спасибо за ответ. –
@ShaneMHewitt Нет, не эзотерический вообще. Хотя списки и кортежи более распространены, я часто сталкиваюсь с данными, которые не имеют значимого порядка и не нужно принуждать в каком-то порядке к работе моего кода. – delnan