Python 数据结构详解
Python 提供了几种内置的数据结构:list
(列表)、tuple
(元组)、dict
(字典)和 set
(集合)。这些数据结构是 Python 编程中非常重要的工具,掌握它们可以帮助你高效地处理各种数据。
1. 列表 (list
)
列表是 Python 中最常用的数据结构之一。它是一个有序的、可变的集合,可以存储任意类型的对象。
特点:
- 有序:元素有确定的顺序。
- 可变:可以修改列表中的元素。
- 支持重复:列表中可以有重复的元素。
基本操作:
# 创建一个列表
fruits = ["apple", "banana", "cherry"]
# 访问元素
print(fruits[0]) # 输出: apple
# 修改元素
fruits[1] = "blueberry"
print(fruits) # 输出: ['apple', 'blueberry', 'cherry']
# 添加元素
fruits.append("orange")
print(fruits) # 输出: ['apple', 'blueberry', 'cherry', 'orange']
# 删除元素
fruits.remove("cherry")
print(fruits) # 输出: ['apple', 'blueberry', 'orange']
# 列表长度
print(len(fruits)) # 输出: 3
2. 元组 (tuple
)
元组和列表类似,但元组是不可变的。一旦创建,就不能修改其内容。
特点:
- 有序:元素有确定的顺序。
- 不可变:不能修改元组中的元素。
- 支持重复:元组中可以有重复的元素。
基本操作:
# 创建一个元组
coordinates = (10, 20, 30)
# 访问元素
print(coordinates[1]) # 输出: 20
# 元组的不可变性
# coordinates[1] = 25 # 这行代码会引发错误,因为元组不可变
# 解包元组
x, y, z = coordinates
print(x, y, z) # 输出: 10 20 30
3. 字典 (dict
)
字典是无序的、可变的集合,用于存储键值对。键必须是唯一的,但值可以重复。
特点:
- 无序:Python 3.7 之前,字典中的元素是无序的。在 Python 3.7 及之后,字典保持插入顺序。
- 键值对:每个元素都是一个键值对,键必须是唯一的。
- 可变:可以修改字典中的元素。
基本操作:
# 创建一个字典
person = {"name": "Alice", "age": 25, "city": "New York"}
# 访问值
print(person["name"]) # 输出: Alice
# 修改值
person["age"] = 26
print(person) # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}
# 添加键值对
person["email"] = "alice@example.com"
print(person) # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'email': 'alice@example.com'}
# 删除键值对
del person["city"]
print(person) # 输出: {'name': 'Alice', 'age': 26, 'email': 'alice@example.com'}
# 获取所有键或值
print(person.keys()) # 输出: dict_keys(['name', 'age', 'email'])
print(person.values()) # 输出: dict_values(['Alice', 26, 'alice@example.com'])
4. 集合 (set
)
集合是无序的、不重复的元素集合。它主要用于包含测试和去重。
特点:
- 无序:元素没有特定顺序。
- 不重复:集合中的每个元素都是唯一的。
- 可变:可以修改集合中的元素。
基本操作:
# 创建一个集合
fruits_set = {"apple", "banana", "cherry"}
# 添加元素
fruits_set.add("orange")
print(fruits_set) # 输出: {'orange', 'apple', 'banana', 'cherry'}
# 删除元素
fruits_set.remove("banana")
print(fruits_set) # 输出: {'orange', 'apple', 'cherry'}
# 集合去重
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # 输出: {1, 2, 3, 4, 5}
# 集合操作
set_a = {1, 2, 3}
set_b = {3, 4, 5}
# 并集
print(set_a | set_b) # 输出: {1, 2, 3, 4, 5}
# 交集
print(set_a & set_b) # 输出: {3}
# 差集
print(set_a - set_b) # 输出: {1, 2}
总结
掌握这些数据结构及其操作是 Python 编程的基础。通过这些数据结构,你可以高效地组织和处理数据,并且在解决各种编程问题时,这些工具将成为你的有力武器。