4.5 元组
元组与列表一样,也是一种序列。唯一的不同是元组不能修改,也就是说,元组是只读的。定义元组非常简单,只需要用逗号(,)分隔一些值即可。
1,2,3,4,5,6,7 #创建一个元组
当然,也可以将元组用一对括号括起来。
(1,2,3,4,5,6,7) #创建一个元组
既然元组中的元素值是用逗号分隔的,那么如何定义只有一个元素的元组呢?当然也是在一个值的后面加逗号了。
40, #创建一个只有一个元素的元组
(20,) #创建一个只有一个元素的元组
50 #只是一个普通值,不是元组
如果要创建一个空元组(没有任何元素的元组),可以直接用一对圆括号。
() #创建一个空元组
如果想将序列转换为元组,可以使用tuple函数。
values = tuple([1,2,3,4,5,6,7,8,9]) #将列表[1,2,3,4,5,6,7,8,9]转换为元组(values变量是元组类型)
[例 4.32] 本例演示了如何创建元组,以及如何生成5个同样值的元组,最后使用tuple函数将列表和字符串转换为元组。
numbers = 1,2,3,4,5 #创建元组
print(numbers) #输出结果:(1, 2, 3, 4, 5)
numes = ('小黑','小白','小红','小黄')
print(numes) #输出结果:('小黑', '小白', '小红', '小黄')
values = 40, #创建一个只有一个元素的元组
print(values) #输出结果:(40,)
#生成5个同样值的元组
print(5 * (16 + 4,)) #输出结果:(20, 20, 20, 20, 20)
#不是元组,就是一个运算方法
print(5 * (12 + 4)) #输出结果:80
#将一个序列转换为元组(tuple函数)
print(tuple([1,2,3,4,5,6])) #输出结果:(1, 2, 3, 4, 5, 6)
print(tuple('adidas')) #输出结果:('a', 'd', 'i', 'd', 'a', 's')
输出结果:
(1, 2, 3, 4, 5)
('小黑', '小白', '小红', '小黄')
(40,)
(20, 20, 20, 20, 20)
80
(1, 2, 3, 4, 5, 6)
('a', 'd', 'i', 'd', 'a', 's')
Python为什么要加入元组呢?如果要只读的序列,直接用列表不就得了,不修改列表不就是只读了?从技术层面上来说,这么做是可以的。但有如下两个重要原因让我们必须使用元组。
(1)元组可以在映射中作为键值使用,而列表不能这么用。关于映射的内容以后会说到。
(2)很多内奸函数和方法的返回值就是元组,也就是说,如果要使用这些内建的函数和方法的返回值,就必须使用元组才行。