python 中对象的不copy坑

在py中,对象的赋值并不会copy 对象,而是增加对象的引用,如果确实需要copy,引用copy.copy/copt.deepcopy

例子:
lis=['a','b','c']

list1=[{'a':'1'},{'a':'2'},{'a':'3'}]
for i in list1:
        i['a']=i['a']+'_5'
        print i
print list1

import copy
list2=[{'a':'1'},{'a':'2'},{'a':'3'}]
for i in list2:
        j=copy.copy(i)
        j['a']=j['a']+'_5'
        print j

print list2

执行结果
{'a': '1_5'}
{'a': '2_5'}
{'a': '3_5'}
[{'a': '1_5'}, {'a': '2_5'}, {'a': '3_5'}]

{'a': '1_5'}
{'a': '2_5'}
{'a': '3_5'}
[{'a': '1'}, {'a': '2'}, {'a': '3'}]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,229评论 1 118
  • 海银资本王煜全对人工智能的总结 《人工智能芯片的现状与未来》王煜全 2017.02.13《智能芯片,巨头跟班各边忙...
    RoFF阅读 1,072评论 0 0
  • 厨房炉灶上 开水自沸腾 无人理睬好悲伤
    北瑾余生阅读 975评论 0 0
  • ****安装Git**** ****配置Git**** ****初始化本地仓库**** ****增加|删除文件**...
    AlicFeng阅读 4,239评论 0 1
  • 七夕到了,小麻雀都很高兴,一年就工作这一天,做完这一天歇一年。而且还可以见到织女姐姐,小麻雀们起了个大早,怕耽误牛...
    蔚然123阅读 1,417评论 1 0