必考
存一个值还是多个值
一个值:整型/浮点型/字符串
多个值:列表/元祖/字典/集合
有序or 无序
有序:字符串/列表/元祖
无序:字典/集合
可变or 不可变
可变:列表/字典/集合
不可变:整型/浮点型/字符串
浅拷贝和深拷贝(只针对可变类型)
# 拷贝
# lis = [1,2,3,4]
# lis2 = lis # 最基本的拷贝
#
# lis.append(5)
# print(lis)
# print(lis2)
#
# x = 10
# y = x
# x+=1
# print(x)
# print(y)
# 浅拷贝
# import copy
#
# lis = [1, 2, 3, 4, [5, 6, 7]]
# lis2 = copy.copy(lis)
# print(lis)
# print(lis2)
# lis.append(8)
# print(lis)
# print(lis2)
# lis[4].append(8)
# print(lis)
# print(lis2)
# print(id(lis[0]))
# print(id(lis[1]))
# print(id(lis[2]))
# print(id(lis[3]))
# print(id(lis[4]))
#
# print(id(lis2[0]))
# print(id(lis2[1]))
# print(id(lis2[2]))
# print(id(lis2[3]))
# print(id(lis2[4]))
# lis[0] += 1
# print(lis)
# print(lis2)
总结:
拷贝:
'''
如果l2是l1的拷贝对象,l1发生改变则l2也会发生改变,因为l1是可变类型,可变类型
值变id不变
'''
浅拷贝:
'''
如果l2是l1的浅拷贝对象,l1内部的不可变对象发生改变,则l2不变;如果l1内部的可变对象发生
改变,则l2随着改变
'''
深拷贝:
'''
如果l2是l1的深拷贝对象,l1内部的不可变对象发生改变,则l2不变;如果l1内部的可变对象发生
改变,l2也不会改变
'''