簡體   English   中英

Python:創建N的組合,其中2個項目為常數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM