解决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中使用dict和set方法的教程
Apr 27 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
详解python时间模块中的datetime模块
Jan 13 Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
详解Python中的type和object
Aug 15 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
Python中Numpy mat的使用详解
May 24 Python
python实现视频读取和转化图片
Dec 10 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 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
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
什么是JavaScript
2009/08/13 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
微信小程序实现上拉加载功能
2019/11/20 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
银行职员思想汇报
2013/12/31 职场文书
老公保证书范文
2014/04/29 职场文书
十佳家长事迹材料
2014/08/26 职场文书
个人作风建设心得体会
2014/10/22 职场文书
对公司的意见和建议
2015/06/04 职场文书
MySQL视图概念以及相关应用
2022/04/19 MySQL