0
生成序列
所以,我已經取得了一系列的一組元素,像這樣:如何從不同的系列
elements= {
'a' : '12345',
'b' : '67890',
'c' : 'abcdefg',
'd' : 'hijklmn',
...
}
而我想要做的是有一個函數,它輸出的定義和返回與上述定義相匹配的所有可能的字符組合。
例如,如果函數收到'abbc'
,那麼它將返回一組所有字符串,它們包含一個來自set a的字符,後跟一個來自set b的字符,後跟一個來自set b的字符,隨後是一個字符從集c。
理想情況下,這將返回一個生成器。
我在那裏掙扎的是如何建立越過輸入字符的循環,從elements
中選擇適當的集合,然後生成所有先前輸入的所有組合。
例如,如果我只是循環輸入,像這樣,我如何獲得下一個序列?
for c in list(input):
element_set = list(elements[c])
#now I've got the list of elements for this character, but how do I combine all possible values here with all possible values for the next character?
我可以建立在我結束與下面列出的清單:
[ list(elements[a]), list(elements[b]), list(elements[b]), list(elements[c]) ]
但後來我怎麼搶「的位置都可能值0」 +「的所有可能的值位置1「等?
我甚看着itertools。但是,我當然錯過了這一點。現在我覺得啞巴,哈哈。 – 2014-10-05 20:29:14
+1剛剛擊敗了我 – 2014-10-05 20:29:38