解决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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python中urllib2模块的8个使用细节分享
Jan 01 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
python json.dumps中文乱码问题解决
Apr 01 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
使用darknet框架的imagenet数据分类预训练操作
Jul 07 Python
Python基础之条件语句详解
Jun 16 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
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
python之django母板页面的使用
2018/07/03 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
python脚本定时发送邮件
2020/12/22 Python
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
《我的第一本书》教学反思
2014/02/15 职场文书
公务员个人年终总结
2015/02/12 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
初中数学教学随笔
2015/08/15 职场文书