Вы можете использовать random.shuffle()
, чтобы перетасовать список:
import random
r = list(range(1000))
random.shuffle(r)
for i in r:
# do something with i
Кстати, во многих случаях, когда вы используете цикл for
наддиапазон целых чисел в других языках программирования, вы можете напрямую описать «вещь», которую вы хотите перебрать в Python.
Например, если вы хотите использовать значения i
для доступа к элементам списка, вам следуетлучше перетасовать список напрямую:
lst = [1970, 1991, 2012]
random.shuffle(lst)
for x in lst:
print x
ПРИМЕЧАНИЕ: При использовании random.shuffle()
следует учитывать следующее (взято из docs :
Обратите внимание, что даже для довольно небольшого len (x) общее число перестановок x больше, чем период большинства генераторов случайных чисел, это означает, что большинство перестановок длинной последовательности никогда не может быть сгенерировано.