元组简介

元组(tuple)也是Python内置对象之一。元组与列表非常相似,也是任意对象的有序集合。与列表最大的区别就是列表是可变的,而元组是不可变的,因此元组定义后无法增加、修改、删除,没有append、remove等方法。并且元组通常包在圆括号中,而不是方括号。其他获取元素的方法和list是一样的,比如正数和负数索引,切片等。

常用的元组操作如下:

python删除元组 python删除列表中的元组_元组


python删除元组 python删除列表中的元组_python删除元组_02

创建

元组用()表示,并且小括号可以省略。对于初学者,建议一直使用圆括号。

>>>t=('Python',18,True)
>>>print(t)
('Python', 18, True)

>>>t='Python',18,True
>>>print(t)
('Python', 18, True)

空元组表示方法有两种

>>>print(())
()

>>>print(tuple())
()

一个元素的元组
元组中至少要包含一个逗号,以消除与数学符号()的歧义。

>>>t=(18)
>>>print(type(t))
<class 'int'>

>>>t=(18,)
>>>print(type(t))
<class 'tuple'>

元组不可变详解

通常如果尝试修改元组,系统会报错。

>>>t=('Python',18,True)
>>>t[1]=36
TypeError: 'tuple' object does not support item assignment

如果元组中嵌套了一个可变类型的列表呢?

>>>t=('a','b',['A','B'])
>>>t[2][0]='X'
>>>t[2][1]='Y'
>>>print(t)
('a', 'b', ['X', 'Y'])

看似不可变的元组被改变了。为什么会这样呢?同列表一样,元组中存储的是引用对象,因此元组的不可变是指一旦定义后不能再引用其他对象,但是所指向的可变类型的数据是可以改变的。即元组的不可变性只适用于元组本身顶层而并非其内容
因此,使用元组的时候,请尽量使用数字、字符串和元组这种不可变的数据类型作为元组的元素,这样就能确保元组不发生变化。

多变量同时赋值

赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量同时赋值。
还可以在赋值运算符的左边的某个变量前添加*号,以匹配赋值运算符右边的0个或多个元素。

>>>[a,b]=[5,8]
>>>print(a,b)
5 8

>>>a,b=5,8
>>>print(a,b)
5 8

>>>a,*b,c=1,2,3,4
>>>print(a,b,c)
1 [2, 3] 4

交换两个变量的值

通常在C语言中,交换两个变量的值需要借助中间变量,而python则不需要。

>>>a=5
>>>b=8
>>>a,b=b,a
>>>print(a,b)
8,5