元组
关于元组:元组在Python中用() 表示,与列表不同的是元组不可修改
如果元组只有一个值,我们不可以只写一个值,这样会把Python解释器搞不清楚的
我们要写成(值,) 这样的形式
元组的目的就是告诉读代码的人,你不想修改这个东西
hello = [1,2,3]
hello[1] = 4
#错误写法
tuple() 和 list()
我们可以将元组类型转化为列表类型,也可以将列表类型转化为元组类型
a = tuple([1,2,4])
print(type(a))
# 输出为tuple类型
a = list((1,2,3,4))
print(tupe(a))
# 输出为list类型
关于引用
在了解引用之前,我们先对比两个程序
a = 1
b = a
b = 2
print(a) #1
print(b) #2
我们发现这个a的值并没有改变
a = [1,2,3]
b = a
b[0] = 0
print(a) # [0,2,3]
print(b) # [0,2,3]
我们发现这里a[1]的值发生改变,主要是因为这里的a是一个引用,a指向列表
b = a,的意思是让b也指向列表
传递引用
def add(p):
a.append(4)
a = [1,2,3]
add(p)
print(a)
# [1,2,3,4]
列表和字典都会发生这样的事情
如果你不想发生这种该引用的事情,你可以采用完全赋值的方式
import copy
a = [1,2,3,4]
b = copy.copy(a)
b[1] = 0
print(a) #[1,2,3,4]
print(b) #[0,2,3,4]
print('========')
# 如果列表中嵌套了列表
c = [1,[1,2,3]]
d = copy.deepcopy(c)
d[1] = 0
print(c)
print(d)
总结:
1).列表是可变的,元组是不可变的 2).列表的赋值是引用 3).完全的赋值是copy.copy(list),copy.deepcopy(list)
|