一、字典的基本概念和操作
Python中的字典是一种无序的键值对集合,用{}括起来,其中每个键值对用冒号 : 分割,每个键值对之间用逗号 , 隔开。它的基本操作包括以下几种:
1. 创建字典
# 创建一个空字典
d = {}
# 创建一个非空字典
d = {'name': 'John', 'age': 30, 'city': 'New York'}
2. 访问字典元素
# 访问字典中的特定元素
name = d['name']
print(name)
# 通过get方法访问字典中的元素(如果键不存在,则返回默认值)
age = d.get('age', 0)
print(age)
3. 添加或修改字典元素
# 添加新元素
d['gender'] = 'male'
# 修改已有元素
d['age'] = 32
# 删除元素
del d['city']
# 清空字典
d.clear()
# 删除字典
del d
二、常见的字典操作技巧
1. 遍历字典元素
# 遍历所有key
for key in d.keys():
print(key)
# 遍历所有value
for value in d.values():
print(value)
# 遍历所有键值对
for key, value in d.items():
print(key, value)
2. 将列表转换为字典
keys = ['name', 'age', 'gender']
values = ['Alice', 25, 'female']
# 使用zip函数将两个列表合并为一个字典
d = dict(zip(keys, values))
3. 使用字典推导式生成新字典
# 将字典中的键值对翻转
d = {'name': 'Alice', 'age': 25, 'gender': 'female'}
d_new = {value: key for key, value in d.items()}
print(d_new)
三、应用示例:快速统计电影中演员出现的次数
可以使用Python中的字典和正则表达式快速统计文本中各个字符出现的次数,同样,也可以快速统计电影中演员出现的次数。例如以下的示例代码:
import re
# 读取电影名称和演员列表
with open('movie.txt', 'r') as f:
lines = f.readlines()
actor_count = {}
# 统计演员出现次数
for line in lines:
line = line.strip()
if not line:
continue
# 根据“主演:”关键字找到演员列表所在行并提取演员名称
if line.startswith('主演:'):
actors = re.findall('[^\u4e00-\u9fa5]*([\u4e00-\u9fa5]+)[^\u4e00-\u9fa5]*', line)
for actor in actors:
actor_count[actor] = actor_count.get(actor, 0) + 1
# 按照演员出现次数排序并输出结果
sorted_actors = sorted(actor_count.items(), key=lambda x: x[1], reverse=True)
for actor, count in sorted_actors:
print(actor, count)
以上代码读取了电影名称和演员列表,从演员列表中提取演员名称并统计其出现次数,最后按照出现次数排序并输出结果。
四、结语
本文介绍了Python中字典的基本概念和常见操作技巧,并通过一个实际应用示例展示了使用字典快速处理数据的能力。掌握字典的操作技巧可以帮助我们更加高效地处理数据,提高工作效率。