1.深浅拷贝
为什么需要引出深浅拷贝?
原因:例如在想使用一个源数据并对其进行操作的时候,对源数据不希望进行修改。
a.赋值操作
直接赋值新变量会导致新变量里的数据发生变化时,源数据跟着发生变化。
list1=[1,3,5,[7,9]]
list2=list1
list2.append(11) #list1和list2同时发生改变---id值相同,相当同一个元素
print(id(list1))
print(id(list2))
b.浅拷贝
拷贝的比较浅,外层列表是独立的 相互不影响,子列表是同一个,数据没有完全独立
import copy
list1=[1,3,5,[7,9]]
list2=copy.copy(list1)
#list2.append(11) list2的改变不会影响到list1
list2[-1].append(11) #list2和list1值会同时发生变化即值相等---但两者id值不同
print(id(list1))
print(id(list2))
c.深拷贝
拷贝的比较深—完全独立
import copy
list1=[1,3,5,[7,9]]
list2=cppy.deepcopy(list1)
#list2.append(11)
list2[-1].append(11) #list2的改变不会影响到list1
print(id(list1))
print(id(list2)) #两者id值不相等
运算符优先级
**优先级:**算术运算符 (加减乘除)> 关系运算符(大于小于) > 逻辑运算符(或且)
print(not 1 > 2 or 4 > 3 ) #not > and > or