美文网首页
python 中对象的不copy坑

python 中对象的不copy坑

作者: shanggl | 来源:发表于2017-07-18 00:04 被阅读0次

在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'}]

相关文章

  • python 中对象的不copy坑

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

  • python中copy和deepcopy有什么区别?

    python中copy和deepcopy有什么区别? copy仅拷贝对象本身,而不对中的子对象进行拷贝,故对子对象...

  • python 深拷贝与浅拷贝的区别

    python中浅拷贝和深拷贝的区别如下: copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。 ...

  • 深浅复制

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 copy.cop...

  • python 浅拷贝和深拷贝

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 copy.cop...

  • Python 相关

    Python copy以及其中的deepcopy可以拷贝python类对象,深度复制,对于想快速复制对象中的变量特...

  • Python浅拷贝与深拷贝

    Python浅拷贝与深拷贝 一、可变对象与不可变对象 见Python变量 二、copy模块 对象拷贝是指在内存中创...

  • python 深拷贝与浅拷贝的区别

    python中浅拷贝和深拷贝的区别如下: 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对...

  • python 深拷贝与浅拷贝的区别

    python中浅拷贝和深拷贝的区别如下: 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对...

  • Python 对象拷贝

    Python 赋值只是进行对象的引用。如果拷贝一个对象,则需要使用copy模块。 copy.copy() 进行浅拷...

网友评论

      本文标题:python 中对象的不copy坑

      本文链接:https://www.haomeiwen.com/subject/occckxtx.html