gpt4 book ai didi

python - 更新嵌套字典中的值 - Python

转载 作者:行者123 更新时间:2023-11-28 21:42:34 27 4
gpt4 key购买 nike

我创建了一个字典如下:

gP = dict.fromkeys(range(6), {'a': None, 'b': None, 'c': None, 'd': None})

现在,当我尝试修改一个值时:

gP[0]['a'] = 1

由于某种原因,a 的所有值(不管它们属于哪个键)都变为 1,如下所示:

{0: {'a': 1, 'b': None, 'c': None, 'd': None},
1: {'a': 1, 'b': None, 'c': None, 'd': None},
2: {'a': 1, 'b': None, 'c': None, 'd': None},
3: {'a': 1, 'b': None, 'c': None, 'd': None},
4: {'a': 1, 'b': None, 'c': None, 'd': None},
5: {'a': 1, 'b': None, 'c': None, 'd': None}}

我做错了什么?什么是正确的赋值语句?

最佳答案

正如@deceze 所说,Python 不会复制。您在键值对的所有值部分引用了同一个字典。

另一种方法是:

gP = {x: {'a': None, 'b': None, 'c': None, 'd': None} for x in range(6)}

更新:@Chris_Rands 提供了一个更清晰的答案版本:

{x: dict.fromkeys('abcd') for x in range(6)}

关于python - 更新嵌套字典中的值 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43513825/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com