[英]Python: create combinations of N where 2 of the items are constant
使用itertools.combinations,可以很好地完成以下工作:
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)
好吧,我想您想做的是使5元組,其中指定了前2個,后3個來自可迭代的稱為alphabet
,但后3個不能重用前兩個。
這個怎么樣:
start = ('a', 'b')
for ending in itertools.combinations(set(alphabet) - set(start), 3):
print start + ending
只需使您的alphabet
不包含前兩個字母,然后對其余的字母進行組合,然后與['a','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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.