没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
前言 最近发现一个问题,在一次爬虫实战中,需要将字典加入列表中,意外的情况出现了!!!下面简单分析一下出现的状况: list = [] dic = {} for i in range(5): dic['num'] = i list.append(dic) print(id(dic)) print(list) 136652096 136652096 136652096 136652096 136652096 [{'num': 4}, {'num': 4}, {'num': 4}, {'num': 4}, {'num': 4}] 结果出乎意料,并不是我们简单认为的 [{'num': 0}
资源推荐
资源详情
资源评论






























Python中循环后使用中循环后使用list.append()数据被覆盖问题的解决数据被覆盖问题的解决
前言前言
最近发现一个问题,在一次爬虫实战中,需要将字典加入列表中,意外的情况出现了!!!下面简单分析一下出现的状况:
list = [] dic = {}
for i in range(5):
dic['num'] = i
list.append(dic)
print(id(dic))
print(list)
136652096
136652096
136652096
136652096
136652096
[{'num': 4}, {'num': 4}, {'num': 4}, {'num': 4}, {'num': 4}]
结果出乎意料,并不是我们简单认为的
[{'num': 0}, {'num': 1}, {'num': 2}, {'num': 3}, {'num': 4}]
用我自己的理解是:用我自己的理解是:
如上图,每一个dic都给list一个位置,但你的dic在循环外,也就说每次循环你给的都是一个地址,dic的值改变,新一次的循环
值就会覆盖上一次循环的值,list取到的值也改变。
正确做法:正确做法:
list = [] for i in range(5):
dic = {}
dic['num'] = i
list.append(dic)
print(id(dic))
print(list)
138383888
136652192
138383408
138384272
138383792
[{'num': 0}, {'num': 1}, {'num': 2}, {'num': 3}, {'num': 4}]
正确做法是将dic放入循环内,这样每次循环都会是一个新的dic,分配不同的地址。
总结总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言
交流,谢谢大家对软件开发网的支持。
您可能感兴趣的文章您可能感兴趣的文章:在Python中append以及extend返回None的例子python-django中的APPEND_SLASH实现方法Python中
extend和append的区别讲解Python 创建空的list,以及append用法讲解浅谈python中字典append 到list 后值的改变问题python
中append实例用法总结
资源评论


weixin_38526650
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于Android的社交分享平台的设计论文.doc
- 网络宣传管理工作总结.docx
- 董老师研发多项目管理.doc
- 基因工程的步骤.ppt
- 国际货物买卖法MicrosoftPowerPoint演示文稿.pptx
- 金蝶软件初始化准备及基础资料编码规则培训.ppt
- 软件售后服务人员提成方案附表.docx
- 设施网络规划与物流管理.pptx
- 网络侵权的界定是什么?.doc
- 基于MATLAB彩色图像及增强处理设计方法.doc
- 项目管理人员安全生产责任制考核记录表.doc
- 天骄联盟网网络推广策划书.doc
- 中小企业会计信息化综述.doc
- 门户网站Web及应用服务器加速及负载均衡方案.doc
- 信息系统项目管理师九大项目管理知识点整合.pdf
- 根源性创新与计算机产业.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
