Python数据类型之元组.md

元组类型(tuple)

1. 元组介绍

Python的元组与列表类似,同样可通过索引访问,支持异构,任意嵌套。不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

1.1 定义方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 定义:()内可以有多个任意类型的值,逗号分隔

# 定义方法-定义元组
>>> tup1 = ('physics', 'chemistry', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d"
>>> print(tup1)
>>> print(tup2)
>>> print(tup3)

('physics', 'chemistry', 1997, 2000)
(1, 2, 3, 4, 5)
('a', 'b', 'c', 'd')

# 定义方法-定义空元组
>>> tup1 = ()
>>> print(tup1)

()

# 定义方法-元组中只包含一个元素时,需要在元素后面添加逗号
>>> tup1 = ('yang',)
>>> print(tup1)

('yang',)

# 定义方法2
>>> tup1=tuple(('apple', 'banana', 'peach'))
>>> print(tup1)

('apple', 'banana', 'peach')

★2. 常用元组方法

2.1 tuple[index] 访问元组中的值

语法说明

使用下标索引来访问列表中的值,下标从0开始计数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用下标索引来访问列表中的值,下标从0开始计数

>>> tup1 = ('physics', 'chemistry', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5, 6, 7 )

>>> print("tup1[0]: ",tup1[0])
>>> print("tup2[1:5]: ",tup2[1:5])
>>> print("tup2[1:]: ",tup2[1:]:)
>>> print("tup2[-2]: ",tup2[-2]:)

tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
tup2[1:]: (2, 3, 4, 5, 6, 7)
tup2[-2]: 6

2.2 修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

1
2
3
4
5
6
7
8
9
10
11
# 以下修改元组元素操作是非法的。
# tup1[0] = 100

>>> tup1 = (12, 34.56);
>>> tup2 = ('abc', 'xyz')

# 创建一个新的元组
>>> tup3 = tup1 + tup2
>>> print(tup3)

(12, 34.56, 'abc', 'xyz')

2.3 删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

1
2
3
4
5
6
7
8
9
10
11
12
>>> tup = ('physics', 'chemistry', 1997, 2000)
>>> print(tup)
>>> del tup
>>> print("After deleting tup : ",tup)

# 以上实例元组被删除后,输出变量会有异常信息
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test_deltup.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined

2.4 元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式 结果结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
(‘copy’,) * 4 (‘copy’, ‘copy’, ‘copy’, ‘copy’) 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

2.5 无关闭分隔符

任意无符号的对象,以逗号隔开,默认为元组

1
2
3
4
5
6
7
>>> tup1 = 1,2,3,4,5
>>> tup2 = 'A','B','C','D','E'
>>> print(tup1)
>>> print(tup2)

(1, 2, 3, 4, 5)
('A', 'B', 'C', 'D', 'E')

2.6 len() 计算元组元素个数

语法说明

len(tuple)

参数说明

  • tuple – 元组对象

返回值

该方法返回元组中元素个数

1
2
3
4
>>> tuple1 = ('Google', 'Baidu', 'Taobao')
>>> print(len(tuple1))

3

2.7 max() 返回元组中元素最大值

语法说明

max(tuple)

参数说明

  • tuple – 元组对象

返回值

该方法返回元组中元素最大值。

1
2
3
4
>>> tuple2 = ('5', '4', '8')
>>> print(max(tuple2))

8

2.8 min() 返回元组中元素最小值

语法说明

min(tuple)

参数说明

  • tuple – 元组对象

返回值

该方法返回值返回元组中元素最小值

1
2
3
4
>>> tuple2 = ('5', '4', '8')
>>> print(min(tuple2))

4

2.9 tuple() 将列表转换为元组

语法说明

tuple(seq)

参数说明

  • seq – 序列对象,如列表

返回值

该方法返回值转换后的元组对象

1
2
3
4
5
>>> list1= ['Google', 'Taobao', 'Facebook', 'Baidu']
>>> tuple1=tuple(list1)
>>> print(tuple1)

('Google', 'Taobao', 'Facebook', 'Baidu')