解决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 client使用http post 到server端的代码
Feb 10 Python
python多进程实现进程间通信实例
Nov 24 Python
python编程培训 python培训靠谱吗
Jan 17 Python
python中的二维列表实例详解
Jun 19 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
Python多线程原理与用法详解
Aug 20 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
如何在Django配置文件里配置session链接
Aug 06 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
python中sort sorted reverse reversed函数的区别说明
May 11 Python
Python3.9.1中使用match方法详解
Feb 08 Python
七个非常实用的Python工具包总结
Jun 15 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 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
python中split方法用法分析
2015/04/17 Python
Python的函数的一些高阶特性
2015/04/27 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python中turtle作图示例
2017/11/15 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python创建学生管理系统
2019/11/22 Python
Python如何实现强制数据类型转换
2019/11/22 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
利用python汇总统计多张Excel
2020/09/22 Python
flask项目集成swagger的方法
2020/12/09 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
办公室年终个人自我评价
2013/10/28 职场文书
高中生自我评语大全
2014/01/19 职场文书
工程管理英文求职信
2014/03/18 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python