当我们需要在Python中临时存储一些数据时,元组(tuple)是一个很好的选择。元组是一种序列型数据类型,非常类似于列表,但它们是不可变的,其内容在创建后不能被修改。
创建元组
元组可以使用()或tuple()函数来创建,其中()是最常见的方式。
tup1 = () #创建一个空元组
tup2 = (1, 2, 3, 4, 5) #创建一个包含5个元素的元组
tup3 = ('red', 'blue', 'green', 'yellow') #创建一个包含4个元素的元组,元素是字符串类型
tup4 = (1, 'John', 3.14, True) #创建一个元素类型不同的元组
访问元组
元组中的元素可以通过索引值访问,索引值是从0开始的整数。同时,也支持索引值的阴影索引(-1代表最后一个元素)。
tup = ('physics', 'chemistry', 'maths', 'biology', 'history')
print("tup[0]: ", tup[0])
print("tup[-1]: ", tup[-1])
元组的切片
元组可以使用切片操作符[:]以及start、stop、step三个参数进行切片。切片可以返回元组的一个子集。如果start被忽略,则默认为0;如果stop被忽略,则默认为元组的长度;如果step被忽略,则默认为1。
tup = ('physics', 'chemistry', 'maths', 'biology', 'history')
print("tup[1:3]: ", tup[1:3])
print("tup[:-1]: ", tup[:-1])
元组的拼接和重复
可以使用+操作符来拼接两个或多个元组。
tup1 = (1, 2, 3)
tup2 = ('a', 'b', 'c')
tup3 = tup1 + tup2
print(tup3)
可以使用*操作符对元组进行重复操作。
tup1 = (1, 2, 3)
print(tup1 * 3)
元组的遍历
使用for循环可以对元组进行遍历。
tup = ('physics', 'chemistry', 'maths', 'biology', 'history')
for subject in tup:
print(subject)
元组的内建函数
Python内置了一些函数来处理元组,如下所示:
- len(): 返回元组中元素的个数。
- max(): 返回元组中元素的最大值。
- min(): 返回元组中元素的最小值。
- cmp(tuple1, tuple2): 如果tuple1 < tuple2返回-1,如果tuple1==tuple2返回0,如果tuple1 > tuple2返回1。
tup = (1, 2, 3, 4, 5)
print("The length of the tuple is: ", len(tup))
print("The max element in the tuple is: ", max(tup))
print("The min element in the tuple is: ", min(tup))
示例1:
def get_rectangle_area_info(rectangle):
'''
计算矩形的周长和面积,并返回计算结果。
参数:
rectangle: 元组类型,包含矩形的长和宽信息。
返回值:
元组类型,包括四个元素,分别是矩形的长、宽、周长和面积。
'''
length, width = rectangle # 元组拆包
circumference = (length + width) * 2
area = length * width
return (length, width, circumference, area)
rectangle = (5, 6)
rectangle_info = get_rectangle_area_info(rectangle)
print(rectangle_info)
运行结果:
(5, 6, 22, 30)
该示例中,我们定义了一个函数get_rectangle_area_info(),该函数接受一个元组rectangle,用于保存矩形的长和宽信息。函数中使用元组拆包的方式将rectangle拆成了length和width,然后计算出矩形的周长和面积,并将四个值包含在一个元组中并返回。
示例2:
def remove_duplicate_elements(lst):
'''
从列表中移除重复元素,并返回移除重复元素后的列表。
参数:
lst: 列表类型,需要去重的原始列表。
返回值:
元组类型,包括去重后的列表和被移除的元素个数。
'''
unique_elements = list(set(lst))
duplicate_count = len(lst) - len(unique_elements)
return (unique_elements, duplicate_count)
lst = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
unique_lst, duplicate_count = remove_duplicate_elements(lst)
print(unique_lst)
print(duplicate_count)
运行结果:
[1, 2, 3, 4, 5]
5
该示例中,我们定义了一个函数remove_duplicate_elements(),该函数接受一个列表lst,用于保存需要去重的原始列表。函数中先将lst转换为集合类型(set),然后再将集合类型转换回列表类型,从而去掉列表中的重复元素。最后使用len()函数计算出被移除的元素个数,将去重后的列表和被移除的元素个数包含在一个元组中并返回。