解决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之集成开发环境(IDE)
Sep 12 Python
python通过zlib实现压缩与解压字符串的方法
Nov 19 Python
python 根据正则表达式提取指定的内容实例详解
Dec 04 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
Django中的静态文件管理过程解析
Aug 01 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
Python爬虫使用代理IP的实现
Oct 27 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
教你用python实现12306余票查询
Jun 30 Python
Pandas数据结构之Series的使用
Mar 31 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正则表达式(regar expression)
2011/09/10 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Python中的面向对象编程详解(上)
2015/04/13 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python实现学生信息管理系统
2020/04/05 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
个人委托书怎么写
2014/04/04 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
教你使用TensorFlow2识别验证码
2021/06/11 Python
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android