我有一些可能的单词列表,可以对给定的单词进行字谜。列表的每个字符串都是字典的键,并且具有一个或多个单词的值。这是从字典中相应键的每个列表中的单词中按键顺序排列所有可能句子的最佳方法(最快,最Python方式)。
列表中有可变数量的键。
keylist = ['key1', 'key2', 'key3']
worddict = {'key1': ['a','b','c'], 'key2':['d','e','f'], 'key3':['g','h','i']}
预期结果(第一个键列表中的第一个单词,第二个键列表中的第二个单词,依此类推):
["a d g",
"a d h",
"a d i",
.....
"c f i"]
最佳答案
使用itertools模块中的product
函数生成可迭代对象的所有组合
import itertools
for sentence in itertools.product(['a','b','c'], ['d','e','f'], ['g','h','i']):
print sentence
输出将是元组,但是如果需要,可以将它们轻松转换为字符串或列表。
关于python - 从关键字列表到字典查找所有句子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3526357/