使用数字键在字典中迭代时出现问题

Problem iterating in dictionary with numeric keys

提问人:Jamezco7 提问时间:8/3/2023 最后编辑:Jamezco7 更新时间:8/3/2023 访问量:30

问:

我想遍历一个主键是整数的嵌套字典。当我尝试将值分配给特定键时,该值将分配给所有键。

下面是直接分配值的代码示例,另一个通过迭代分配值的示例

import numpy as np
dic={}.fromkeys(np.arange(3),{'key1':[],'key2':[], 'key3':[]})
list1=[0.9, 0.8, 0.7]

dic[0]['key1'].append(list1[0])
dic[1]['key1'].append(list1[1])
dic[2]['key1'].append(list1[2])

for i in dic.keys():
    dic[i]['key3'].append(list1[i])

dic

这是输出

{0: {'key1': [0.9, 0.8, 0.7], 'key2': [], 'key3': [0.9, 0.8, 0.7]},
 1: {'key1': [0.9, 0.8, 0.7], 'key2': [], 'key3': [0.9, 0.8, 0.7]},
 2: {'key1': [0.9, 0.8, 0.7], 'key2': [], 'key3': [0.9, 0.8, 0.7]}}

这可能是一个微不足道的错误,但我无法修复它。谢谢

我期待这样的事情

{0: {'key1': [0.9], 'key2': [], 'key3': [0.9]},
 1: {'key1': [0.8], 'key2': [], 'key3': [0.8]},
 2: {'key1': [0.7], 'key2': [], 'key3': [0.7]}}
python-3.x 循环 字典

评论


答: 暂无答案