元组(Tuple)
元组是Python中的一种不可变序列类型,俗称“不可变的列表”或“只读列表”。它使用小括号()来定义,内部可以包含任意类型的数据,包括数字、字符串、列表等。元组的不可变性指的是其内部的元素一旦定义后就不能被修改,但请注意,如果元组中的元素是可变类型(如列表),那么这些元素内部的内容是可以改变的。
2. 基本操作
- 创建空元组:
empty_tuple = ()
# 或者使用内置的tuple函数
empty_tuple = tuple()
- 创建非空元组:
# 单个元素的元组,注意末尾的逗号
single_element_tuple = (20,)
# 包含多个元素的元组
multi_element_tuple = (1, 2, 3)
# 也可以不使用括号,但逗号表示元组
another_tuple = 100, 200, 300
# 从可迭代对象创建元组
iterable_tuple = tuple([1, 2, 3])
- 元组方法:
元组拥有count(), index(), len()等方法,分别用于计数某个元素出现的次数、查找某个元素的索引以及获取元组的长度。
3. 作用
- 内存优化:元组按需分配内存,如果变量数量固定且不需要修改,使用元组可以更加节省空间。
- 格式字符串:在字符串格式化时,经常需要使用元组来传递多个参数。
- 数据安全:由于元组不可变,它可以用于保护数据安全,确保数据不被意外修改。
4. 练习题
- 元组和列表之间的转换
-
- 使用list()函数将元组转换为列表。
- 使用tuple()函数将列表转换为元组。
- 求数字列表的和
numbers = [59, 54, 89, 45, 78, 45, 12, 96, 789, 45, 69]
total_sum = sum(numbers)
print(total_sum)
- 求节目的平均分数(去掉一个最高分,去掉一个最低分)
scores = [9.8, 9.5, 9.9, 9.3, 8.9, 9.5, 9.6, 9.3, 9.4, 9.6]
sorted_scores = sorted(scores)
final_score = sum(sorted_scores[1:-1]) / (len(sorted_scores) - 2)
print(final_score)
- 求两个列表的公共元素
A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
common_elements = list(set(A) & set(B))
print(common_elements)
- 输出1970-2050年间的所有闰年
for year in range(1970, 2051):
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(year)