元组:有序的不可变的元素集合
# Python 的元组与列表类似,不同之处在于元组的元素不能修改。
# 元组使用小括号,列表使用方括号。
# 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
1 tup1 = ('google', 'baidu', 1997, 2000) 2 print(type(tup1)) 3 4 tup2 = (1, 2, 3, 4, 5, 6) 5 print(type(tup2))
输出结果:
<class 'tuple'>
<class 'tuple'>
# 创建空元组
tup = ();
# 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
1 tup1 = (60)
2 print(type(tup1))
3 # # 不加逗号,类型为整型
4
5 tup2 = (60, )
6 print(type(tup2))
7 # 加上逗号,类型为元组
输出结果:
<class 'int'>
<class 'tuple'>
# 从列表转换成元组
1 l = [1, 2, 3, 4, 5, 6]
2 changeTuple = tuple(l)
3 print("changeTuple:: ", changeTuple)
输出结果:changeTuple:: (1, 2, 3, 4, 5, 6)
# 元组的嵌套
# 元组的元素可以是元组
tup = (1, 2, ('a', 'b'))
元组的常用操作
由于元组是不可变的,所有不存在增、删、改的操作
# 元组可以使用下标索引来访问元组中的值
1 tup1 = ('google', 'baidu', 1997, 2000)
2 tup2 = (1, 2, 3, 4, 5, 6)
3
4 print("tup1[0]:: ", tup1[0])
5 print("tup2[1:5]:: ", tup2[1:5])
输出结果:
tup1[0]:: google
tup2[1:5]:: (2, 3, 4, 5)
# tuple.count
# 统计元组中指定元素的个数,如果元素不存在,则返回值是0
1 tupe = (1, 2, 3, 2, 4)
2 c = tupe.count(2)
3 print("元组中2元素的个数:: ", c)
输出结果:元组中2元素的个数:: 2
# tuple.index()
# 获取元组中指定元素的索引, 如果指定元素不存在,程序则会报错
1 tupe = (1, 2, 3, 2, 4)
2 idx = tupe.index(2)
3 print("元组中3元素的索引值:: ", idx)
输出结果:元组中3元素的索引值:: 1
# len(tuple)
# 计算元组元素个数。
# max(tuple)
# 返回元组中元素最大值。
# min(tuple)
# 返回元组中元素最小值。
1 tupe = (1, 2, 3, 4, 5, 6)
2 length = len(tupe)
3
4 minNum = min(tupe)
5 maxNum = max(tupe)
6
7 print("元组的长度为:: ", length)
8 print("元组的最大值::%d,元组的最小值::%d"%(maxNum, minNum))
输出结果:
元组的长度为:: 6
元组的最大值::6,元组的最小值::1
# 判定
# 元素 in 元组
# 元素 not in 元组
1 tup = (1, 2, 3, 4, 5, 6)
2 print("3 in tup:: ", 3 in tup)
3 print("5 not in tup:: ", 5 not in tup)
输出结果:
3 in tup:: True
5 not in tup:: False
# 比较
# Python 元组 cmp() 函数用于比较两个元组元素。
# cmp()方法语法:
# cmp(tuple1, tuple2)
# 参数:
# tuple1 -- 比较的元组。
# tuple2 -- 比较的另外一个元组。
# 返回值::
# 如果比较的元素是同类型的,则比较其值,返回结果。
# 如果两个元素不是同一种类型,则检查它们是否是数字。
# 如果是数字,执行必要的数字强制类型转换,然后比较。
# 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
# 否则,通过类型名字的字母顺序进行比较。
# 如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
# 如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。
# Python3.x不支持cmp的操作
1 tuple1, tuple2 = (123, 'xyz'), (456, 'abc')
2
3 print cmp(tuple1, tuple2);
4 print cmp(tuple2, tuple1);
5 tuple3 = tuple2 + (786,);
6 print cmp(tuple2, tuple3)
7 tuple4 = (123, 'xyz')
8 print cmp(tuple1, tuple4)
输出结果:
-1
1
-1
0
在Python3.x中我们可以直接用比较运算符
# 比较运算符
# ==
# >
# <
# 针对每个元素,从左到右逐一比较
1 result = (1, 2) > (3, 4)
2 print(result)
3
4 result = (3, 6) < (3, 7)
5 print(result)
输出结果:
False
True
1 # 乘法
2 print(('Hi',)*4)
3
4 # 加法
5 tup1 = (1, 2, 3, 4, 5)
6 tup2 = ('google', 'baidu')
7 print("tup1 + tup2:: ", tup1 + tup2)
8
9 # 拆包
10 tup = (10, 20)
11 print(tup[0], tup[1])
12
13 # 我们也可以这样写
14 a, b = (10, 20)
15 print(a, b)
输出结果:
('Hi', 'Hi', 'Hi', 'Hi')
tup1 + tup2:: (1, 2, 3, 4, 5, 'google', 'baidu')
10 20
10 20