关于元组:元组在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 = 1b = ab = 2print(a) #1print(b) #2
我们发现这个a的值并没有改变
a = [1,2,3]b = ab[0] = 0print(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 copya = [1,2,3,4]b = copy.copy(a)b[1] = 0print(a) #[1,2,3,4]print(b) #[0,2,3,4]print('========')# 如果列表中嵌套了列表c = [1,[1,2,3]]d = copy.deepcopy(c)d[1] = 0print(c)print(d)
总结: 1).列表是可变的,元组是不可变的
2).列表的赋值是引用
3).完全的赋值是copy.copy(list),copy.deepcopy(list)