3. Python 数据结构
字典与集合
在 Python 中,字典(dict)和集合(set)是两种非常常用的数据结构。它们分别用于存储键值对和唯一元素,具有高效的查找和操作性能。本节将详细介绍字典和集合的基本用法、常见操作以及它们在实际编程中的应用。
字典(dict)
字典是 Python 中一种可变、无序的键值对集合。字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任意类型。字典的主要特点是通过键快速查找对应的值。
字典的创建
字典可以通过花括号 {} 或 dict() 函数创建:
# 使用花括号创建字典
person = {"name": "Alice", "age": 25, "city": "New York"}
# 使用 dict() 函数创建字典
person = dict(name="Alice", age=25, city="New York")
字典的常用操作
访问元素:通过键访问对应的值。
print(person["name"]) # 输出: Alice添加或修改元素:通过赋值操作添加或修改键值对。
person["email"] = "alice@example.com" # 添加新键值对 person["age"] = 26 # 修改已有键的值删除元素:使用
del语句或pop()方法删除键值对。del person["city"] # 删除键为 "city" 的键值对 age = person.pop("age") # 删除并返回键为 "age" 的值遍历字典:可以通过键、值或键值对遍历字典。
for key in person: # 遍历键 print(key, person[key]) for value in person.values(): # 遍历值 print(value) for key, value in person.items(): # 遍历键值对 print(key, value)字典推导式:用于快速生成字典。
squares = {x: x**2 for x in range(5)} # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
集合(set)
集合是一种无序且不重复的元素集合。集合的主要用途是去重和成员关系测试。
集合的创建
集合可以通过花括号 {} 或 set() 函数创建:
# 使用花括号创建集合
fruits = {"apple", "banana", "cherry"}
# 使用 set() 函数创建集合
fruits = set(["apple", "banana", "cherry"])
集合的常用操作
添加元素:使用
add()方法添加单个元素,或使用update()方法添加多个元素。fruits.add("orange") # 添加单个元素 fruits.update(["grape", "kiwi"]) # 添加多个元素删除元素:使用
remove()或discard()方法删除元素。fruits.remove("banana") # 删除元素,如果元素不存在会报错 fruits.discard("mango") # 删除元素,如果元素不存在不会报错集合运算:集合支持并集、交集、差集等运算。
set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1 | set2) # 并集: {1, 2, 3, 4, 5} print(set1 & set2) # 交集: {3} print(set1 - set2) # 差集: {1, 2} print(set1 ^ set2) # 对称差集: {1, 2, 4, 5}集合推导式:用于快速生成集合。
squares = {x**2 for x in range(5)} # 输出: {0, 1, 4, 9, 16}
字典与集合的性能分析
- 字典:字典的查找、插入和删除操作的平均时间复杂度为 O(1),因为字典是基于哈希表实现的。
- 集合:集合的查找、插入和删除操作的平均时间复杂度也为 O(1),因为集合也是基于哈希表实现的。
实际应用场景
字典:
- 存储配置信息或属性值。
- 实现缓存或映射关系。
- 统计词频或数据分组。
集合:
- 去重操作。
- 成员关系测试。
- 集合运算(如交集、并集等)。
通过掌握字典和集合的使用方法,您可以在 Python 中更高效地处理数据,并解决各种实际问题。
