相等

'is '和'=='

变量
id:在内存中的存储位置,id(a)
value: ==
type:数据类型
==: 判断数据类型和值
is:判断id,数据类型和值

li =[1,'1',6]
li1 = li    #直接赋值,两者满足'is'
li1
[1, '1', 6]
id(li)
140492002190728
id(li1)
140492002190728
li is li1
True
li2 =li.copy()    #列表拷贝,另外开辟内存空间
li2
[1, '1', 6]
li2 is li
False
li2 == li
True

深拷贝与浅拷贝

所有的数值类型(布尔、数字)、字符串都是不可变数据类型
列表是可变数据类型

列表里嵌套列表时,浅拷贝是拷贝内置列表的存储位置
深拷贝会把内置列表的内容拷贝出来,重新存储一份

浅拷贝

  • li.copy()
  • li[:]
li=[[1,3],'2',4]
li1 = li.copy()
li1
[[1, 3], '2', 4]
li[0].append(5)
li
[[1, 3, 5], '2', 4]
li1
[[1, 3, 5], '2', 4]

import copy

  • copy.copy(li)
>>> import copy
>>> li2 = copy.copy(li)
>>> li[0].append(0)
>>> li
[[1, 3, 5, 0], '2', 4]
>>> li2
[[1, 3, 5, 0], '2', 4]

图片描述
深拷贝

import copy

  • copy.deepcopy()
>>> li3 = copy.deepcopy(li)
>>> li[0].append(1001)
>>> li
[[1, 3, 5, 0, 1001], '2', 4]
>>> li3
[[1, 3, 5, 0], '2', 4]
>>> id(li[0])
139645242725128
>>> id(li3[0])
139645237769992

图片描述


SheenStar
168 声望26 粉丝

祝你坚强