1 回答

TA貢獻1963條經驗 獲得超6個贊
range()以及按需生成項目的返回生成器。您無需調用并將它們轉換為列表。只需直接迭代它們并逐個訪問項目即可。permutation()list()
num = 11
base = range(1, num+1)
permutations = itertools.permutations(base)
for permutation in permutations:
# Do something with `permutation`.
(請注意,一個生成器只能使用一次。如果要多次迭代排列,則需要多次調用。itertools.permutations()
要在 n 個項目后停止,請使用 :itertools.islice()
for permutation in itertools.islice(permutations, n):
# Do something with `permutation`.
您也可以在開始時跳過項目。這將跳過前五個排列:
for permutation in itertools.islice(permutations, 5, n):
# Do something with `permutation`.
如果要計算排列,可以添加 ,它將索引附加到每個條目:enumerate()
for i, permutation in enumerate(itertools.islice(permutations, n)):
# Skip the fifth permutation.
if i == 4:
continue
# Do something with `permutation`.
順便說一句,請使用小寫字母作為變量名稱。只有類名應大寫。
添加回答
舉報