当前位置: 移动技术网 > IT编程>脚本编程>Python > Python中列表的深浅拷贝

Python中列表的深浅拷贝

2018年11月22日  | 移动技术网IT编程  | 我要评论

张湾租房,丰田汽车召回事件,马威斯

copy_lst = [

  ('py对象三要素',),

  ('== 比较运算符',),

  ('is 身份运算符',),

  ('小数据池',),

  ('列表的浅拷贝',),

  ('列表的深拷贝',),

]

 

py对象三要素

  id

  type

  value

== 比较运算符

  通过value进行判断

    >>>a = 257

    >>>b = 257

    >>> a == b

    true

is 身份运算符

  通过id进行判断

    >>>a = 257

    >>>b = 257

    >>>id(a) == id(b)

    false

    >>>a is b

    false

小数据池

  代码块的缓存机制

列表的浅拷贝

  第一层创建新的内存地址

  从第二层开始,指向同一个内存地址

    >>>lst = [1, 2, [3, 4]]

    >>>copy_lst = lst.copy()

    >>>lst is copy_lst

    false

    >>>lst[0] = 5

    >>>lst[0] is copy_lst[0]

    false

    >>>lst[2][1] = 6

    >>>lst[2] is copy_lst[2]

    true

列表的深拷贝

  完全独立

  改变列表任意一个元素(无论多少层),另一个列表都不会改变

    >>>from copy import deepcopy

    >>>lst = [1, 2, [3, 4]]

    >>>deepcopy_lst = deepcopy(lst)

    >>>lst is deepcopy_lst

    false

    >>>lst[0] = 6

    >>>lst[0] is deepcopy_lst[0]

    false

    >>>lst[2][1] = 5

    >>>lst[2] is deepcopy_lst[2]

    false

  

  

  

  

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网