gpt4 book ai didi

python - Python 列表字典中元素的增量

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:38 25 4
gpt4 key购买 nike

我有这个简单的代码:

M = dict.fromkeys([0, 1, 2, 3, 4], [0, 0])
M[0][1] += 2
print(M)

为什么是这样的输出?

{0: [0, 2], 1: [0, 2], 2: [0, 2], 3: [0, 2], 4: [0, 2]}

它递增字典中列表的所有元素!我只想用键 0 增加列表的第二个元素,如下所示:

{0: [0, 2], 1: [0, 0], 2: [0, 0], 3: [0, 0], 4: [0, 0]}

最佳答案

M 中的所有值都指向完全相同 列表。证明:

>>> map(id, M.values())
[139986331512912, 139986331512912, 139986331512912, 139986331512912, 139986331512912]

如果你改变它,它会影响所有的键。尝试为每个键创建一个新列表:

>>> M = { k:[0,0] for k in [0, 1, 2, 3, 4] }
>>> M[0][1] += 2
>>> print(M)
{0: [0, 2], 1: [0, 0], 2: [0, 0], 3: [0, 0], 4: [0, 0]}

关于python - Python 列表字典中元素的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620804/

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