字典是 Python 中无序、可变的键值对(key-value)集合,键(key)唯一且必须是不可变类型(如字符串、数字、元组),值(value)可任意类型。
- 直接赋值:最常用方式,用大括号
{} 包裹键值对,键值间用 : 分隔,键值对间用 , 分隔。
示例:my_dict = {"name": "Alice", "age": 25, "is_student": False}
dict() 函数:通过可迭代对象或关键字参数创建。
示例 1(可迭代对象):my_dict = dict([("name", "Bob"), ("age", 30)])
示例 2(关键字参数):my_dict = dict(name="Charlie", age=28)
- 空字典:
empty_dict = {} 或 empty_dict = dict()
- 直接用
字典[键] 访问,若键不存在会报错 KeyError。
示例:print(my_dict["name"]) # 输出 "Alice"
- 用
get(key, default) 访问,键不存在时返回默认值(默认值可选,不填则返回 None),避免报错。
示例:print(my_dict.get("gender", "Unknown")) # 输出 "Unknown"
- 若键不存在,
字典[键] = 值 会添加新键值对。
示例:my_dict["gender"] = "Female" # 新增键值对
- 若键已存在,
字典[键] = 新值 会修改对应的值。
示例:my_dict["age"] = 26 # 将 "age" 的值从 25 改为 26
del 字典[键]:删除指定键的键值对,键不存在会报错。
示例:del my_dict["is_student"]
字典.pop(key, default):删除并返回指定键的值,键不存在时返回默认值(避免报错)。
示例:my_dict.pop("gender", "None")
字典.clear():清空字典中所有键值对,字典变为空字典。
示例:my_dict.clear()
- 遍历键:直接循环字典,默认遍历键。
示例:
for key in my_dict:
print(key)
- 遍历值:用
values() 方法。
示例:
for value in my_dict.values():
print(value)
- 遍历键值对:用
items() 方法,通过元组解包获取键和值。
示例:
for key, value in my_dict.items():
print(f"{key}: {value}")
- 键的唯一性:同一字典中不能有重复的键,重复赋值会覆盖前一个值。
示例:my_dict = {"a":1, "a":2} # 最终字典为 {"a":2}
- 键的不可变性:键必须是不可变类型(字符串、数字、元组),列表(可变)不能作为键。
错误示例:my_dict = {[1,2]: "list"} # 报错 TypeError
- 无序性(Python 3.7+ 已有序):Python 3.7 之前字典无序,3.7 及以后会保留插入顺序,但仍不支持索引访问(需通过键访问)。