python - 在循环字典中赋值

标签 python

我正在努力解决这个循环,我想将值分配给嵌套字典。我有一个名为 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/

相关文章:

python - 确定函数在哪里执行?

python - 从tweets json格式文件解析的有效方法

python - 在嵌套字典中添加所有键值

python - 如何解决clang的Python绑定(bind)加载错误?

python - 如何编写 Python 正则表达式来获取 btrfs subvol ID

python - 在 python 中如何使用 XOR 进行二进制运算?

python - Pandas :根据条件删除多行

python - Django 1.7(显然)没有在manage.py测试上运行迁移

Python/Json - 如何从禁止的 json url 中抓取

python - Pyspark 替换 Spark 数据框列中的字符串