键列表和值列表中所有字典的列表
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
的复杂度呈指数级增长,因此如果您有大量可能值,请小心
我有字典(或元组列表,无所谓):
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
的复杂度呈指数级增长,因此如果您有大量可能值,请小心