Python入门之元组


一、什么是元祖


元祖是不可变类型(列表是可变类型)

为什么要设计元祖这样不可变类型?因为一旦创建了不可变类型的对象,对象内部的所有数据就不能被修改了,这样避免了

由于修改数据导致的错误。此外,对于不可变类型的对象,在多任务环境下同时操作对象时不需要加锁。


二、元祖的创建

#可以带() 也可以不带t = ('python',15)print (t)  # ('python', 15)print (type(t)) # <class 'tuple'>t1 = 'python3',19,20print (t1)  # ('python3', 19, 20)print(type(t1)) #<class 'tuple'># 空元祖的创建t2 = ()print (t2)  # ()t2 = tuple()print (t2)  # ()'''元祖是不可修改的,但内部元素如果是可变类型,那么该元素的值是可以修改的'''t3 = ('python',[1,2,3],15)t3[1][1] = 9print (t3)  #('python', [1, 9, 3], 15)


三、只有一个元素的元组

只有一个元素时,给元祖赋值的时候要加上逗号,不然会按照字符的原有类型赋值

t = (18)t1 = ('python')print (type(t))  # <class 'int'> 只有一个元素,不加逗号18为int类型print (type(t1)) # <class 'str'> 只有一个元素,不加逗号'python'为str类型t2 = ('python3',)print (type(t2)) # <class 'tuple'> 只有一个元素,也要加逗号


四、多变量的赋值

赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量赋值

a,b = 7,8print (a,b) # 7 8print (type(a)) # <class 'int'>a,b = [8,9]print (a,b) # 8 9print (type(a)) # <class 'int'>[a,b] = [1,2]print (a,b) #1 2print (type(a)) # <class 'int'>(a,b) = 55,11print (a,b) # #55 11print (type(a)) # <class 'int'>'''可以在变量前加入*,这样多余的元素会赋值到这个变量上,如下所示多余的元素会形成一个列表赋予给变量'''*a,b,c = 1,2,3,4,5print (a,b,c) # [1, 2, 3] 4 5print (type(a)) # <class 'list'>'''正常的值替换将a和b的值互换,操作如下。学习了多变量赋值,可以直接a,b = b,a原理在于先计算右边的值,然后再赋予给左边'''a = 5b = 6tmp = a  #先设置一个中间变量tmp接收a的值,然后tmp = a,a = b,b = tmpa = bb = tmpprint (a,b) #6 5a = 5b = 6a,b = b,a  #先计算右边数的值,然后在赋值给左边print (a,b) # 6 5