Python字典是一种键值对形式的可变数据结构,在数据存储、配置管理、接口返回处理等场景中应用十分广泛,熟练掌握其常用方法可以减少很多重复编码工作。

字典基础创建方法
除了直接使用花括号创建字典,还可以使用dict()构造函数和fromkeys()方法创建字典,以下是常见创建方式的示例:
# 直接花括号创建
user_info = {"name": "张三", "age": 25, "city": "北京"}
# dict构造函数创建
user_info2 = dict(name="李四", age=30, city="上海")
# fromkeys创建指定键的字典,默认值为None
keys = ["id", "score", "rank"]
default_dict = dict.fromkeys(keys)
print(default_dict) # 输出 {'id': None, 'score': None, 'rank': None}
# fromkeys指定默认值
default_dict2 = dict.fromkeys(keys, 0)
print(default_dict2) # 输出 {'id': 0, 'score': 0, 'rank': 0}
字典增删改查常用方法
查询相关方法
查询字典值是字典最常用的操作,除了直接通过键访问,还可以使用get()方法避免键不存在时报错:
test_dict = {"a": 1, "b": 2, "c": 3}
# 直接通过键访问,键不存在会抛出KeyError
print(test_dict["a"]) # 输出 1
# get方法访问,键不存在返回默认值None
print(test_dict.get("d")) # 输出 None
# get方法指定默认值
print(test_dict.get("d", "键不存在")) # 输出 键不存在
# 判断键是否存在于字典中
print("a" in test_dict) # 输出 True
print("d" in test_dict) # 输出 False
新增与修改方法
字典的新增和修改操作可以直接通过键赋值完成,也可以使用setdefault()方法实现条件新增:
test_dict = {"a": 1, "b": 2}
# 直接赋值修改已有键的值
test_dict["a"] = 10
print(test_dict) # 输出 {'a': 10, 'b': 2}
# 直接赋值新增不存在的键
test_dict["c"] = 3
print(test_dict) # 输出 {'a': 10, 'b': 2, 'c': 3}
# setdefault方法:键存在则返回对应值,不存在则新增键值对并返回默认值
result1 = test_dict.setdefault("b", 20)
print(result1) # 输出 2
print(test_dict) # 输出 {'a': 10, 'b': 2, 'c': 3}
result2 = test_dict.setdefault("d", 4)
print(result2) # 输出 4
print(test_dict) # 输出 {'a': 10, 'b': 2, 'c': 3, 'd': 4}
删除相关方法
字典的删除操作有多种方式,分别对应不同的使用场景:
test_dict = {"a": 1, "b": 2, "c": 3, "d": 4}
# pop方法删除指定键,返回对应值,键不存在会报错
removed_val = test_dict.pop("a")
print(removed_val) # 输出 1
print(test_dict) # 输出 {'b': 2, 'c': 3, 'd': 4}
# pop方法指定键不存在的默认值,避免报错
removed_val2 = test_dict.pop("e", "键不存在")
print(removed_val2) # 输出 键不存在
# popitem方法删除最后插入的键值对,返回元组,字典为空时调用会报错
last_item = test_dict.popitem()
print(last_item) # 输出 ('d', 4)
print(test_dict) # 输出 {'b': 2, 'c': 3}
# del关键字删除指定键
del test_dict["b"]
print(test_dict) # 输出 {'c': 3}
# clear方法清空字典所有键值对
test_dict.clear()
print(test_dict) # 输出 {}
字典遍历相关方法
字典提供了多个方法用于获取键、值、键值对,方便不同场景下的遍历需求:
test_dict = {"name": "王五", "age": 28, "job": "开发"}
# keys方法获取所有键
keys = test_dict.keys()
print(list(keys)) # 输出 ['name', 'age', 'job']
# values方法获取所有值
values = test_dict.values()
print(list(values)) # 输出 ['王五', 28, '开发']
# items方法获取所有键值对,返回元组组成的视图
items = test_dict.items()
print(list(items)) # 输出 [('name', '王五'), ('age', 28), ('job', '开发')]
# 遍历键
for key in test_dict:
print(key)
# 遍历键值对
for key, value in test_dict.items():
print(f"键:{key},值:{value}")
字典合并与更新方法
当需要合并多个字典或者更新字典内容时,可以使用update()方法或者Python3.9+引入的合并运算符:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
# update方法将dict2的键值对更新到dict1中,重复键会被覆盖
dict1.update(dict2)
print(dict1) # 输出 {'a': 1, 'b': 3, 'c': 4}
# Python3.9+ 合并运算符 |,生成新字典不修改原字典
dict3 = {"a": 1, "b": 2}
dict4 = {"b": 3, "c": 4}
merged_dict = dict3 | dict4
print(merged_dict) # 输出 {'a': 1, 'b': 3, 'c': 4}
print(dict3) # 输出 {'a': 1, 'b': 2}
其他方法说明
除了上述常用方法,字典还有copy()方法用于浅拷贝字典,len()函数可以获取字典键值对数量,以下是简单示例:
original_dict = {"x": [1, 2], "y": 3}
# copy方法浅拷贝
copied_dict = original_dict.copy()
copied_dict["y"] = 5
copied_dict["x"].append(3)
print(original_dict) # 输出 {'x': [1, 2, 3], 'y': 3},浅拷贝下可变值修改会影响原字典
# len函数获取字典长度
print(len(original_dict)) # 输出 2