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


Posted in Python onJanuary 21, 2019

如下所示:

>>> 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给列表里添加字典时被最后一个覆盖的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
Django之模型层多表操作的实现
Jan 08 Python
python实现整数的二进制循环移位
Mar 08 Python
python字符串查找函数的用法详解
Jul 08 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
对Python _取log的几种方式小结
Jul 25 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python利用faker库批量生成测试数据
Oct 15 Python
使用python求解迷宫问题的三种实现方法
Mar 17 Python
对python列表里的字典元素去重方法详解
Jan 21 #Python
在Python中字典根据多项规则排序的方法
Jan 21 #Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 #Python
pycharm远程开发项目的实现步骤
Jan 20 #Python
对python中类的继承与方法重写介绍
Jan 20 #Python
python 格式化输出百分号的方法
Jan 20 #Python
python自定义函数实现一个数的三次方计算方法
Jan 20 #Python
You might like
php db类库进行数据库操作
2009/03/19 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python中的闭包用法实例详解
2015/05/05 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
车间统计员岗位职责
2014/01/05 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
感谢信模板大全
2015/01/23 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python