解决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中使用itertools模块中的组合函数的教程
Apr 13 Python
python调用fortran模块
Apr 08 Python
Python numpy 常用函数总结
Dec 07 Python
python调用百度语音识别api
Aug 30 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
基于python操作ES实例详解
Nov 16 Python
tensorflow之并行读入数据详解
Feb 05 Python
基于python代码批量处理图片resize
Jun 04 Python
python初步实现word2vec操作
Jun 09 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 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多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
Js四则运算函数代码
2012/07/21 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
python中count函数知识点浅析
2020/12/17 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
上海世博会志愿者口号
2014/06/17 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
花田少年史观后感
2015/06/16 职场文书