Python3 元组类型

译者:anxin
日期:2017-10-26

tuple(元组)类型是Sequence Type(序列类型)的一个子类,序列类型两个主要数据类型是list(列表),tuple(元组)。

元组( tuple )是一个复合数据类型,用于将其他值组合在一起。Python3 的元组和列表有些相似,但是元组是固定数据类型,元素的值不能修改,列表是可变数据类型,元素的值可以修改。

Python3 定义元组

Python3的元组是由一组使用逗号,分开值组成,当然元组也可以使用圆括号定义,然后在圆括号中把各个元素使用逗号,分开。Python3 元组中包含的元素可以是不同的数据类型(如包括字符串和整数),但通常情况下我们创建的元组的元素都是同一种数据类型。

#使用以,分开的元素定义元组,同时元组中包含不同数据类型
>>> tup1 = 'Python3', 123, 321
>>> tup1
('Python3', 123, 321)

#使用圆括号定义元组
>>> tup2 = (12, 123, 321)
>>> tup2
(12, 123, 321)

#元组的元素为相同数据类型,字符串
>>> tup3 = ('Python2', 'Python3')
>>> tup3
('Python2', 'Python3')

#元组的元素为相同数据类型,整数
>>> tup4 = 123, 321, 234, 432
>>> tup4
(123, 321, 234, 432)

定义一个空元组

>>> tup = ()

定义包含一个元素的元组,定义一个元素的元组,在元素后面必须有一个逗号,

#第一种形式
>>> tup1 = 'Python3',
>>> tup1
('Python3',)

#第二种形式
>>> tup2 = ('Python3',)
>>> tup2
('Python3',)

Python3 元组的嵌套

Python3 元组可以嵌套定义,即元组的元素可以是元组

>>> a = ('a', 'b', 'c')
>>> n = (1, 2, 3)
>>> x = (a, n)
>>> x
(('a', 'b', 'c'), (1, 2, 3))
>>> x[0]
('a', 'b', 'c')
>>> x[0][1]
'b'

Python3 索引访问元组元素

序列(Sequence)有一个公共的操作那就是支持索引访问序列元素,元组是序列的子类,同样能够使用下标访问元组元素, Python3元组中的每一个元素都可以使用使用下标获取,下标值从0开始。

>>> squares = (1, 4, 9, 16, 25)
>>> squares[0]  # indexing returns the item
1

Python3中的元组元素可以使用负数索引,-1表示最右面的元素,依次往左减小-2,-3 ...

>>> squares = (1, 4, 9, 16, 25)
>>> squares[-1]  # indexing returns the item
25

Python3 元组分片

1)Python3元组除了支持索引元素外,还支持分片(slice)操作,分片操作是获取当前元组的一个子元组,形式为:tup[start:end]start为起始下标,;end为结束下标。

>>> squares = (1, 4, 9, 16, 25)
>>> squares[2: 4]
(9, 16)

2)Python3元组分片(slice)操作中起始下标可以省略,省略后默认为0,结束下标也可以省略,省略后默认为元组的长度(即:元素的个数)。

>>> squares = (1, 4, 9, 16, 25)
>>> squares[3:]
(16, 25)
>>> squares[:2]
(1, 4)
>>> squares[-2:]
(16, 25)

3)tup[:i] + tup[i:]等于元组 tup:,但是使用这种方式创建的元组是原元组的一个副本

>>> squares = (1, 4, 9, 16, 25)
>>> squares[:3] + squares[3:]
(1, 4, 9, 16, 25)

Python3 连接和重复元组

Python3 中使用 + 连接元组tup1 + tup2,使用 * 重复元组,这两种形式相同tup * nn * tup

>>> squares1 = (1, 4, 9, 16, 25)
>>> squares2 = (36, 49)
>>> squares1 + squares2
(1, 4, 9, 16, 25, 36, 49)

>>> squares1 * 2
(1, 4, 9, 16, 25, 1, 4, 9, 16, 25)

Python3 元组的其他操作

操作 结果
x in tup 如果元组存在元素等于x,为True,否则为False
x not in tup 如果元组不存在元素等于x,为True,否则为False
len(lst) 元组tup的长度
min(lst) 元组tup中最小的元素
max(lst) 元组tup中最大的元素
本文链接:/tutorial/python3/python3-tuple

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!