键列表和值列表中所有字典的列表

List of all dictionaries from list of keys and list of values

我有字典(或元组列表,无所谓):

dict(a=1, b=1, c=1)

我有一组值:

set(['none', 'x', 'y', 'xy'])

我想生成应用于我的字典的值的所有可能模式,例如:

[{'a': 'none', 'b': 'none', 'c': 'none'},
...
{'a': 'xy', 'b': 'xy', 'c': 'xy'}]

我目前正在研究 python 中的 itertools 包以实现此目的 - 但我也对 R 和 bash 中的解决方案持开放态度。我在通过谷歌搜索快速解决问题时无法弄清楚如何表达问题。

没有尝试过,但这应该行得通

from itertools import product

values = ["x", "y", "z", "a" ] 
keys = ["a", "b", "c"] 

y = itertools.product(values, repeat=len(keys) )

all_combos = [] 

for result in y:
    all_combos.append({key:value for key, value in zip(keys, result)}) 

我认为 itertools.product 的复杂度呈指数级增长,因此如果您有大量可能值,请小心