列表和元组是 Python 中两种常用的数据结构,用于存储多个数据项。列表和元组都是有序的集合,可以包含不同类型的元素,但是列表是可变的,元组是不可变的。接下来我们来详细了解列表和元组的使用。
列表(List)
列表是一种可以存储多个值的有序集合,允许修改、增加和删除元素。列表中的元素可以是任何类型,可以相同也可以不同。
类比:就像一个购物清单,你可以在上面添加、删除或更改项目。
示例:
# 创建一个包含水果的列表 fruits = ["苹果", "香蕉", "樱桃"] print(fruits) # 输出: ['苹果', '香蕉', '樱桃']
列表的操作与特性:
- 访问元素:通过索引访问列表中的元素,索引从 0 开始。
- 修改元素:可以改变列表中的元素。
- 增加元素:可以向列表中添加新元素。
- 删除元素:可以从列表中移除元素。
- 迭代:可以遍历列表中的所有元素。
示例:
# 访问列表元素 print(fruits[0]) # 输出: 苹果 # 修改列表元素 fruits[1] = "橙子" print(fruits) # 输出: ['苹果', '橙子', '樱桃'] # 增加列表元素 fruits.append("葡萄") print(fruits) # 输出: ['苹果', '橙子', '樱桃', '葡萄'] # 删除列表元素 fruits.remove("樱桃") print(fruits) # 输出: ['苹果', '橙子', '葡萄'] # 迭代列表 for fruit in fruits: print(fruit) # 输出: # 苹果 # 橙子 # 葡萄
又比如我们可以使用列表来存储学生的成绩,然后计算平均成绩:
# 学生成绩列表 grades = [85, 90, 78, 92, 88] # 计算平均成绩 average_grade = sum(grades) / len(grades) print(f"平均成绩: {average_grade:.2f}")
元组(Tuple)
与列表类似,元组是一种可以存储多个值的有序集合,但元组的元素是不可变的,一旦创建,就不能修改其内容。
类比:就像身份证信息一旦记录下来就不能更改,而只能重新制作一张新的身份证。
示例:
# 创建一个包含坐标的元组 coordinates = (40.7128, -74.0060) print(coordinates) # 输出: (40.7128, -74.0060)
元组的操作与特性:
- 访问元素:通过索引访问元组中的元素。
- 不可变性:不能修改、增加或删除元组中的元素。
- 可以迭代:可以遍历元组中的所有元素。
- 解包:可以将元组中的值直接赋给变量。
示例:
# 访问元组元素 print(coordinates[0]) # 输出: 40.7128 # 解包元组 latitude, longitude = coordinates print(f"纬度: {latitude}, 经度: {longitude}")
比如在实际应用中我们可以使用元组来存储地理位置坐标,然后解包这个元组获取纬度和经度:
# 存储多个地理位置坐标 locations = [("纽约", 40.7128, -74.0060), ("伦敦", 51.5074, -0.1278), ("东京", 35.6895, 139.6917)] for city, lat, long in locations: print(f"{city} 的坐标是: 纬度 {lat}, 经度 {long}")
此外对于函数我们还可以使用元组来返回多个值,比如下面的函数返回一个元组,包含名字和年龄:
# 返回多个值的函数 def get_name_and_age(): name = "Alice" age = 30 return name, age # 调用函数并解包返回值 name, age = get_name_and_age() print(f"名字: {name}, 年龄: {age}")
列表与元组的比较
列表与元组的选择
选择列表或元组,取决于数据是否需要修改。如果数据在创建后不需要修改,使用元组更好;如果需要频繁修改,使用列表更合适。选择合适的数据结构可以提高程序的效率和可读性。