数据结构:列表与元组¶
在Python中,列表(List)和元组(Tuple)是两种常用的数据结构。它们都可以用来存储多个元素,但在某些方面有所不同。本章将详细介绍如何创建、访问、修改列表和元组,并展示它们的常用操作。
1. 列表(List)¶
1.1 创建列表¶
列表是一个有序的可变集合,可以包含不同类型的元素。列表用方括号 []
表示,元素之间用逗号 ,
分隔。
1.2 访问列表元素¶
列表中的元素可以通过索引访问,索引从0开始。Python还支持负索引,表示从列表末尾开始计数。
1.3 修改列表元素¶
列表是可变的,这意味着你可以修改列表中的元素。
1.4 常用列表操作¶
1.4.1 添加元素¶
可以使用 append()
方法在列表末尾添加元素,或使用 insert()
方法在指定位置插入元素。
# 添加元素
my_list.append("New Element")
print(my_list) # 输出: [1, 'World', 3.14, True, 'New Element']
# 在指定位置插入元素
my_list.insert(2, "Inserted Element")
print(my_list) # 输出: [1, 'World', 'Inserted Element', 3.14, True, 'New Element']
1.4.2 删除元素¶
可以使用 remove()
方法删除指定元素,或使用 pop()
方法删除指定位置的元素。
# 删除指定元素
my_list.remove("World")
print(my_list) # 输出: [1, 'Inserted Element', 3.14, True, 'New Element']
# 删除指定位置的元素
my_list.pop(2)
print(my_list) # 输出: [1, 'Inserted Element', True, 'New Element']
1.4.3 列表切片¶
列表切片允许你获取列表的一个子集。
2. 元组(Tuple)¶
2.1 创建元组¶
元组是一个有序的不可变集合,可以包含不同类型的元素。元组用圆括号 ()
表示,元素之间用逗号 ,
分隔。
# 创建一个包含不同类型元素的元组
my_tuple = (1, "Hello", 3.14, True)
print(my_tuple) # 输出: (1, 'Hello', 3.14, True)
2.2 访问元组元素¶
元组中的元素可以通过索引访问,索引从0开始。Python同样支持负索引。
2.3 元组的不可变性¶
元组是不可变的,这意味着你不能修改元组中的元素。尝试修改元组会引发错误。
2.4 常用元组操作¶
2.4.1 元组切片¶
元组切片允许你获取元组的一个子集。
2.4.2 元组解包¶
元组解包允许你将元组中的元素赋值给多个变量。
3. 列表与元组的比较¶
- 可变性:列表是可变的,元组是不可变的。
- 性能:由于元组不可变,它们在内存中的存储和访问速度通常比列表更快。
- 使用场景:列表适合存储需要频繁修改的数据,元组适合存储不需要修改的数据。
4. 练习题¶
4.1 简单练习¶
- 创建一个包含5个元素的列表,并打印出第三个元素。
- 创建一个包含3个元素的元组,并尝试修改其中一个元素(观察会发生什么)。
4.2 中等练习¶
- 编写一个程序,将一个列表中的所有元素复制到另一个列表中,并确保两个列表是独立的(即修改一个列表不会影响另一个列表)。
- 编写一个程序,将两个元组合并成一个新的元组。
4.3 复杂练习¶
- 编写一个程序,接受用户输入的一系列数字,将它们存储在列表中,然后计算这些数字的平均值。
- 编写一个程序,接受用户输入的一系列单词,将它们存储在元组中,然后按字母顺序排序并打印出来。
5. 总结¶
- 列表是有序的可变集合,适合存储需要频繁修改的数据。
- 元组是有序的不可变集合,适合存储不需要修改的数据。
- 列表和元组都支持索引、切片等操作,但列表还支持添加、删除、修改元素等操作。
- 选择使用列表还是元组取决于你的具体需求,如果需要频繁修改数据,使用列表;如果数据不需要修改,使用元组。
通过本章的学习,你应该已经掌握了列表和元组的基本操作,并能够在实际编程中灵活运用它们。继续练习这些概念,以加深对它们的理解。