我正在尝试将列表中的值分配给嵌套词典中的某些键。我遇到的问题很可能是循环问题,因为我能够在正确的键中输入值,但是它们都是重复的。
我尝试将其转换为没有运气的词典列表,但理想情况下,它应作为字典保留在最后
dictionaries_list = {}
factors = {"var": [],
"card": [],
"val": []}
potential = [['0.5 0.5'], ['0.2 0.8'], ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']]
for node in names:
dictionaries_list[node] = factors.copy()
for dicts in dictionaries_list.copy():
for prob in potential:
dictionaries_list.get(dicts)["val"] = prob
print(dictionaries_list)
预期结果是:
{'A': {'var': [], 'card': [], 'val':['0.5 0.5']},
'C': {'var': [], 'card': [], 'val': ['0.2 0.8']},
'B': {'var': [], 'card':[], 'val': ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']}}
我得到:
{'A': {'var': [], 'card': [], 'val': ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']},
'C': {'var': [], 'card': [], 'val': ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']},
'B': {'var': [], 'card':[], 'val': ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']}}
答案 0 :(得分:0)
您需要并行迭代它们。您可以在python中使用zip
。请尝试:
dictionaries_list = {}
factors = {"var": [],
"card": [],
"val": []}
potential = [['0.5 0.5'], ['0.2 0.8'], ['0.9 0.1', '0.8 0.2', '0.3 0.7', '0.1 0.9']]
for node in names:
dictionaries_list[node] = factors.copy()
for dicts, prob in zip(dictionaries_list.copy(), potential):
dictionaries_list.get(dicts)["val"] = prob
print(dictionaries_list)