一、字典简介
Python 中的字典(Dictionary)是一种可变容器,用于存储键值对(key-value pairs)。
字典可以通过键(key)快速查找值(value),并支持添加、修改和删除元素等操作。由于字典底层是通过哈希表实现的,所以查找速度非常快,适用于需要频繁查询键值对的场景。
# 字典定义 dict = {'name': '张三', 'age': 28, 'address': '北京市海淀区'} # 访问字典元素 print(dict['name']) # 输出结果为:张三 print(dict['address']) # 输出结果为:北京市海淀区
在字典中,键必须是唯一的、不可变的对象,如数字、字符串和元组等。值可以是任意对象。
二、字典操作
1. 添加和修改元素
可以通过字典的键来添加新值或修改已有值。
# 添加新元素 dict = {'name': '张三', 'age': 28} dict['address'] = '北京市海淀区' print(dict) # 输出结果为:{'name': '张三', 'age': 28, 'address': '北京市海淀区'} # 修改元素值 dict['age'] = 29 print(dict) # 输出结果为:{'name': '张三', 'age': 29, 'address': '北京市海淀区'}
2. 删除元素
可以通过 del 语句来删除字典指定的元素。
# 删除元素 dict = {'name': '张三', 'age': 28, 'address': '北京市海淀区'} del dict['address'] print(dict) # 输出结果为:{'name': '张三', 'age': 28}
3. 字典方法
Python 字典还提供了一系列方法,用于操作字典元素。
- keys():返回字典中所有的键。
- values():返回字典中所有的值。
- items():返回字典中所有的键值对。
- clear():清空字典。
# 字典方法示例 dict = {'name': '张三', 'age': 28, 'address': '北京市海淀区'} print(dict.keys()) # 输出结果为:dict_keys(['name', 'age', 'address']) print(dict.values()) # 输出结果为:dict_values(['张三', 28, '北京市海淀区']) print(dict.items()) # 输出结果为:dict_items([('name', '张三'), ('age', 28), ('address', '北京市海淀区')]) dict.clear() print(dict) # 输出结果为:{}
三、实际应用场景
1. 计数器
字典可以作为计数器来记录每个元素出现的次数。
# 计数器示例 str = 'hello,world' dict = {} for i in str: dict[i] = dict.get(i, 0) + 1 print(dict) # 输出结果为:{'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, 'w': 1, 'r': 1, 'd': 1}
2. 数据映射
字典可以用于实现数据映射,例如将数据库查询结果映射为字典。
# 数据映射示例 fields = ['name', 'age', 'gender'] values = ['张三', 28, '男'] dict = {fields[i]:values[i] for i in range(len(fields))} print(dict) # 输出结果为:{'name': '张三', 'age': 28, 'gender': '男'}
3. 缓存
字典可以用于缓存计算结果,提升程序性能。
# 缓存示例 dict = {} def calc(x): if x in dict: return dict[x] else: result = x * x dict[x] = result return result print(calc(2)) # 输出结果为:4 print(calc(3)) # 输出结果为:9 print(calc(2)) # 输出结果为:4,从缓存中读取结果
四、总结
Python 字典提供了一种高效的数据结构,可用于存储键值对,实现快速查找和操作。在实际应用中,字典可以用于计数器、数据映射、缓存等多种场景。