1 元组的定义及特点
- (1)元组的定义,使用小括号括起来(),也可以直接赋给多个值,如果一个值在后面加一个逗号
>>> a=(1,2,3,4)
>>> type(a)
<class 'tuple'>
>>> a=1,2,3
>>> a
(1, 2, 3)
>>> type(a)
<class 'tuple'>
>>> a=1,
>>> a
(1,)
>>> type(a)
<class 'tuple'>
- (2)元组是不可变的,不能对元组的元素进行修改
>>> a=(1,2,3,4,5,6)
>>> a[1]=100
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
2 元组的常用运算
- (1)元组中元素可以通过位置下标来方位,第一个元素的下标为0,下标不可超过元素的长度范围
>>> a=(1,2,3,4,5,6)
>>> a[0]
1
>>> a[5]
6
>>> a[7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
- (2)元组中元素的下标可以是负数,负数表示从右边开始标记,-1表示最后一个元素,-2表示倒数第二个
>>> a=(1,2,3,4,5,6)
>>> a[-1]
6
>>> a[-2]
5
>>> a[-6]
1
>>> a[-7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
- (3)元组中的元素可以通过切片操作获取元组的一部分,切片操作坚持左闭右开原则
>>> a=(1,2,3,4,5,6)
>>> a[0:4]
(1, 2, 3, 4)
>>> a[4:5]
(5,)
- (4)元组的切片操作第二个参数可以超过元组的长度,超出元组的长度时默认取到最后一个元素
>>> a=(1,2,3,4,5,6)
>>> a[2:6]
(3, 4, 5, 6)
>>> a[2:10]
(3, 4, 5, 6)
- (5)元组的切片操作第一个和第二个参数都可以省略,第一个参数省略时表示左侧从第一个元素开始取,第二个参数
省略时表示右侧取到最后一个元素
>>> a=(1,2,3,4,5,6)
>>> a[:4]
(1, 2, 3, 4)
>>> a[3:]
(4, 5, 6)
>>> a[:]
(1, 2, 3, 4, 5, 6)
- (6)元组的切片操作第一个参数表示的位置可以在第二个参数表示的位置的右侧,此时返回为一个空元素
>>> a=(1,2,3,4,5,6)
>>> a[5:1]
()
>>> a[-1:-3]
()
- (7)元素的切片操作还可以有第三个参数,表示步长
>>> a=(1,2,3,4,5,6,7,8,9,0)
>>> a[1:9:3]
(2, 5, 8)
>>> a[::-1]
(0, 9, 8, 7, 6, 5, 4, 3, 2, 1)
- (8)len()函数返回元组长度,即元素的个数
>>> a=(1,2,3,4,5,6)
>>> len(a)
6
- (9)max()函数返回元组中元素的最大值
>>> a=(1,2,3,4,5,6)
>>> max(a)
6
- (10)min()函数返回元组中的元素的最小值
>>> a=(1,2,3,4,5,6)
>>> min(a)
1
- (11)sum()函数返回元祖中的所有元素之和
>>> a=(1,2,3,4,5)
>>> sum(a)
15
- (12)in, not in 判断元组中是否包含某元素
>>> a=(1,2,3,4,5,6)
>>> 0 in a
False
>>> 0 not in a
True
>>> 4 in a
True
- (13)两个元组可以用加号,加起来,形成一个新的元组
>>> (1,2,3)+(1,2,3)
(1, 2, 3, 1, 2, 3)
- (14)元组也可以乘以一个数字将现有元组的元素复制多倍构造新的元组
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
3 元组中常用的函数
因为元组是不可变的,元组中的元素不可修改,所以元组的可用函数就很少了,只有count和index两个
- (1)count(value) 返回元组中元素的个数
>>> a=(1,2,3,2,1,2,3,2,1)
>>> a.count(1)
3
>>> a.count(4)
0
- (2)index(value, start=0, stop=9223372036854775807) 返回查询到的第一个元素的位置索引值,可以指定查询的起始和结束位置
>>> a=(1,2,3,4,3,2,1,2,3,4)
>>> a.index(3)
2
>>> a.index(3,3)
4
>>> a.index(3,5,8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple