Python基础知识(五)—列表内存图

# list01 是变量,存储列表对象的地址.
#列表引用
list01 = ["张无忌","赵敏","周芷若"]
# list02 得到的是列表对象地址
list02 = list01
# 修改的是列表第一个元素存储的对象地址
list01[0] = "老张"
print(list02[0])# ?"老张"

list01 = ["张无忌","赵敏","周芷若"]
list02 = list01
# 修改的是变量存储的对象地址
list01 = "老张"
print(list02[0])# ?"张无忌"

list01 = ["张无忌","赵敏","周芷若"]
# 通过切片复制新列表(拷贝了列表中的变量,而没有变量指向的对象)
list02 = list01[:]
list01[0] = "老张"
print(list02[0])# ?"张无忌"

list01 = ["张无忌",["赵敏","周芷若"]]
list02 = list01
# 修改列表第二个元素的第二个元素
list01[1][1] = "芷若"
print(list02[1][1])    #"芷若"

list01 = ["张无忌",["赵敏","周芷若"]]
list02 = list01[:]
list02 = list01.copy() # 浅拷贝
list01[1][1] = "芷若"
print(list02[1][1])    # 芷若

import copy

list01 = ["张无忌",["赵敏","周芷若"]]
list02 =copy.deepcopy(list01)  # 深拷贝
list01[1][1] = "芷若"
print(list02[1][1])    # 周芷若

猜你喜欢

转载自www.cnblogs.com/maplethefox/p/10836031.html