我不知道这个algmay的着名类型......
我听了这个表格
L = [ ["a"] , ["b"] , ["c"] ] , [ ["d"] , ["e"] , ["f"] ] , ["g"], ["h"], ["i"] ] ,[ ["j"] , ["k"] , ["l"] ]
其中字母是单词,L的长度可以是2到50个元素,但列表中的长度总是3个元素。
我想创建一个构建所有字符串的列表:
"adgj"
"adgk"
"adgl"
"adhj"
"adhk"
"adhl"
"adij"
"adik"
"adil"
"aegj"
一直到"cfil"
有人可以告诉我该做什么或在哪里寻找?
感谢您的帮助..
答案 0 :(得分:5)
您可以使用itertools.product
来有效实现这一目标:
import itertools
L = [['a'], ['b'], ['c']], [['d'], ['e'], ['f']], [['g'], ['h'], ['i']], [['j'], ['k'], ['l']]
for item in itertools.product(*L):
''.join([str(x) for y in item for x in y])
答案 1 :(得分:2)
如果您不想使用任何其他模块并自行完成所有工作,请按照以下代码为您提供结果,
L = [[ ["a"] , ["b"] , ["c"] ] , [ ["d"] , ["e"] , ["f"] ] , [["g"], ["h"], ["i"] ] ,[ ["j"] , ["k"] , ["l"] ]]
words = []
def a(string):
i = len(string)
if(i==len(L)):
words.append(string)
else:
for element in L[i]:
a(string+element[0])
a('')