使用itertools.combinations的n種組合,下面的偉大工程:的Python:創建在項目2恆定
for letter_group in itertools.combinations(alphabet, 5):
print letter group
現在我想擁有的5項第2的組合不變。有沒有辦法做到這一點?
例如,輸出將被:
(a,b,c,d,e)
(a,b,e,f,g)
...
(a,b,x,y,z)
使用itertools.combinations的n種組合,下面的偉大工程:的Python:創建在項目2恆定
for letter_group in itertools.combinations(alphabet, 5):
print letter group
現在我想擁有的5項第2的組合不變。有沒有辦法做到這一點?
例如,輸出將被:
(a,b,c,d,e)
(a,b,e,f,g)
...
(a,b,x,y,z)
好吧,我想你試圖做的是使其中指定了第一個2 5元組是什麼,最後3是從一個可迭代稱爲alphabet
,但最後3個不能重複使用前兩個。
如何:
start = ('a', 'b')
for ending in itertools.combinations(set(alphabet) - set(start), 3):
print start + ending
我想到他的用例,開始只是一些通用的迭代。所以需要把它作爲一個集合。如果他完全掌握了控制權,那麼一定要從一開始就讓「開始」一套。 – 8one6
只是讓你alphabet
沒有前兩個字母,完成其餘的組合,然後聯繫[「一」,「B」],結果,可運行的代碼:
# -*- coding: utf-8 -*-
import string
import itertools
alphabet = string.letters[:26]
prefix = ['a', 'b']
for letter_group in itertools.combinations(alphabet[len(prefix):], 3):
print prefix + list(letter_group)
什麼是您的實際數據? –