关于元组:元组在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)



