Python3中使用append添加字典元素出现问题
定义了一个copy函数,将nums列表中的词典元素,复制到a列表中。
打印出的结果却是
[{'val': '1', 'name': '1'}]
[{'val': '2', 'name': '2'}, {'val': '2', 'name': '2'}]
[{'val': '3', 'name': '3'}, {'val': '3', 'name': '3'}, {'val': '3', 'name': '3'}]
a.append(tempdict)将最后一次添加的元素重复添加多次。代码如下
def copy():
a = []
tempdict = dict.fromkeys(('val','name'),'')
nums = [{'val':'1','name':'1'},{'val':'2','name':'2'},{'val':'3','name':'3'}]
for eachnum in nums:
tempdict['val'] = eachnum['val']
tempdict['name'] = eachnum['name']
a.append(tempdict)
print(a)
if name == '__main__':
getsum()
题主,你的tempdict始终是同一个字典对象,你每次对它进行赋值,实际上都是在修改同一个字典,所以最后虽然append到列表里成了三个列表元素,但三个字典中的key,value都指向的是内存空间中的同一个key值和value值,这也就是为什么循环每进行一次,值就变一次。不知道我有没有解释清楚.. 你可以在循环前和循环中都打印一下tempdict的id看一下。
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd14106.html
相关文章 Recommend
- • 优集品网络科技有限公司招Python中/高级工程师
- • 请python高手帮我看看这段python代码中函数setter的
- • python re模块中的 match()和group()疑问
- • macos x中python是默认就有的吗?
- • python如何缩短cmd中过长的命令
- • 又是python乱码问题,excel类型文件单元格内数据有
- • 使用django在做添加superuser操作时报错\xBA\xA3像是乱
- • python语言中的pcap与dpkt在统计中的作用分别是什么
- • 一段代码中使用了sqlite有部分不理解的地方,求老
- • 环境部署问题,python web应用可以在代码中判断de
- • django中url无法include怎么配置?
- • scrapy爬取list中所有项,只爬一个就结束了什么原因
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问