Python之元组

元组:有序的不可变的元素集合

# 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

 
 
 
 
 
原文地址:https://www.cnblogs.com/cxq0017/p/9400153.html