解决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 json encode datetime类型
Dec 28 Python
Python基础入门之seed()方法的使用
May 15 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
Nov 29 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
python实现简单遗传算法
Sep 18 Python
Python自动化测试PO模型封装过程详解
Jun 22 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调用.NET的WebService 简单实例
2015/03/27 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python端口扫描简单程序
2016/11/10 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
nohup的用法
2014/08/10 面试题
什么是方法的重载
2013/06/24 面试题
安全生产网格化管理实施方案
2014/03/01 职场文书
销售团队激励口号
2014/06/06 职场文书
死亡赔偿协议书
2015/01/28 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL