我正在努力解决这个循环,我想将值分配给嵌套字典。我有一个名为 stp2 的列表和一个使用 none 作为值创建的默认字典。 我正在尝试一一获取列表元素并分配给字典。
stp2=['Anna', 'William', 'Mary', 'Ben', 'Richard','Calvin', 'Rock']
而 my_dict 是默认字典(嵌套),如下所示:
defaultdict(<class 'dict'>, {0: {'name': None, 'price': None,}, 1:{'name': None, 'price': None,}, 2: {'name': None, 'price': None,}, 3: {'name': None, 'price': None,}, 4: {'name': None, 'price': None,}, 5: {'name': None, 'price': None,}, 6: {'name': None, 'price': None,}})
我正在使用此循环来更新值:
for z in enumerate(stp2):
my_dict[z[0]]['name']=z[1]
print(my_dict)
理想情况下,我的输出应该是这样的,但我在每个重复的值中都得到了“Rock”。
理想输出:
{0: {'name': 'Anna', 'price': None,}, 1:{'name': 'William', 'price': None,}, 2: {'name': 'Mary', 'price': None,}, 3: {'name': 'Ben', 'price': None,}, 4: {'name': 'Richard', 'price': None,}, 5: {'name': 'Calvin', 'price': None,}, 6: {'name': 'Rock', 'price': None,}}
感谢您的帮助。
最佳答案
尝试下面的代码。您没有更新 key ,这就是您为 dict 中的所有 key 获取相同值的原因。
stp2=['Anna', 'William', 'Mary', 'Ben', 'Richard','Calvin', 'Rock']
d = {
0: {'name': None, 'price': None},
1: {'name': None, 'price': None},
2: {'name': None, 'price': None},
3: {'name': None, 'price': None},
4: {'name': None, 'price': None},
5: {'name': None, 'price': None},
6: {'name': None, 'price': None}}
for index, value in enumerate(stp2):
d[index]['name'] = value
print d
# output:
{0: {'name': 'Anna', 'price': None},
1: {'name': 'William', 'price': None},
2: {'name': 'Mary', 'price': None},
3: {'name': 'Ben', 'price': None},
4: {'name': 'Richard', 'price': None},
5: {'name': 'Calvin', 'price': None},
6: {'name': 'Rock', 'price': None}}
关于python - 在循环字典中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524876/