我不熟悉python字典,所以我不知道为什么会发生这种情况。基本上,问题是每当我用列表更新一个键时,它都会用列表更新字典中的所有键。 尝试,除了只有唯一的用户,所以我不认为这是问题所在
file:
user contact
20b3c296-0043-3948-9c90 Stacy Armstrong
20b3c296-0043-3948-9c90 Brian Theresa
20b3c296-0043-3948-9c90 Miller Justin
c9b16828-91d2-33c9-b915 Monique Porter
c9b16828-91d2-33c9-b915 Rebecca Marky
c9b16828-91d2-33c9-b915 Rose Chang
a6f8a71d-7568-3552-9cf4 Mildred Linda
a6f8a71d-7568-3552-9cf4 Josephine Larry
a6f8a71d-7568-3552-9cf4 Henry Mildred
代码如下:
^{pr2}$打印报表给了我:
20b3c296-0043-3948-9c90 ['Stacy Armstrong', 'Brian Theresa', 'Miller Justin']
20b3c296-0043-3948-9c90 ['Monique Porter', 'Rebecca Marky', 'Rose Chang']
c9b16828-91d2-33c9-b915 ['Monique Porter', 'Rebecca Marky', 'Rose Chang']
20b3c296-0043-3948-9c90 ['Mildred Linda', 'Josephine Larry', 'Henry Mildred']
c9b16828-91d2-33c9-b915 ['Mildred Linda', 'Josephine Larry', 'Henry Mildred']
a6f8a71d-7568-3552-9cf4 ['Mildred Linda', 'Josephine Larry', 'Henry Mildred']
尽管每次列表_联系人都不同(您可以在更新字典之前尝试打印它),但所有键值都会更新到该迭代中的最后一个列表。任何帮助都非常感谢,因为我真的不知道是什么原因造成的。在
谢谢:)
这是一个按引用复制的问题—所有dict—“值”都包含对同一数据的相同引用—只要使用一个引用更新数据,就可以修改所有引用的基础数据。如果你想有不同的列表,你需要复制.deepcopy当你把它写进你的口述时
您可以使用pyton对象上的
id()
获得一个唯一的id,以区分/比较它们是“相同”还是“不同”,如下所示:原始列表
^{pr2}$[ data, data, [99,100], 1]
[ data, data, [99,100], 1]
的浅拷贝深度复制
[ data, data, [99,100], 1]
复制和粘贴到你的编辑器和发挥周围-改变东西和pp的各种版本,看看什么是遗留下来(或检查ID)。在
相关问题 更多 >
编程相关推荐