• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

解决python给列表里添加字典时被最后一个覆盖的问题

python 搞代码 4年前 (2022-01-07) 30次浏览 已收录 0个评论

今天小编就为大家分享一篇解决python给列表里添加字典时被最后一个覆盖的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

 >>> item={} ; items=[]  #先声明一个字典和一个列表,字典用来添加到列表里面 >>> item['index']=1    #给字典赋值 >>> items.append(item) >>> items [{'index': 1}]      #添加到列表里面复合预期 >>> item['index']=2    #现在修改字典 >>> item {'index': 2}       #修改成功 >>> items.append(item)  #将修改后的新字典添加到列表 >>> items         #按预期应该是[{'index': 1}, {'index': 2}] [{'index': 2}, {'index': 2}] #找一下原因: >>> id(item),id(items[0]),id(items[1]) (3083974692L, 3083974692L, 3083974692L) 可以看到item,items[0],items[1]都指向同一个对象,实际上是列表在多次添加(引用)同一个字典。

一种解决的办法:

 >>> items=[] >>> for i in range(3): ...   item={}     #每次都重新声明一个新字典 ...   item['index']=i ...   items.append(item) ...   id(item) ... 3084185084L 3084183588L 3084218956L >>> items [{'index': 0}, {'index': 1}, {'index': 2}] >>> 

以上这篇解决python给列表里添加字典时被最后一个覆盖的问题就是小编分享给大家的来源gao@daima#com搞(%代@#码网全部内容了,希望能给大家一个参考,也希望大家多多支持gaodaima搞代码网

以上就是解决python给列表里添加字典时被最后一个覆盖的问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决python给列表里添加字典时被最后一个覆盖的问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址