我有一个列表,其中包含几个列表,其中包含给定句子中的很多单词(字谜)。
anagrams_list = [['artist', 'strait', 'traits'], ['are', 'ear', 'era'], ['detail', 'dilate', 'tailed']]
我想创建一个列表,其中包含我可以用这些词创建的每个句子。
这里是:
result = ['artist are detail', 'artist are dilate', 'artist are tailed', 'artist ear detail', ...]
我尝试了很多 for 但取决于我在 anagrams_list 中有多少列表这是不可能的,我想递归会很好但我不知道如何创建它。
请您参考如下方法:
您可以使用 itertools.product为此,通过将元组连接成一个句子来进行后期处理:
import itertools
result = [' '.join(x) for x in itertools.product(*anagrams_list)]
这会创建:
>>> result
['artist are detail', 'artist are dilate', 'artist are tailed', 'artist ear detail', 'artist ear dilate', 'artist ear tailed', 'artist era detail', 'artist era dilate', 'artist era tailed', 'strait are detail', 'strait are dilate', 'strait are tailed', 'strait ear detail', 'strait ear dilate', 'strait ear tailed', 'strait era detail', 'strait era dilate', 'strait era tailed', 'traits are detail', 'traits are dilate', 'traits are tailed', 'traits ear detail', 'traits ear dilate', 'traits ear tailed', 'traits era detail', 'traits era dilate', 'traits era tailed']
