2023-10-19 13:08:36
Python中的字典(Dictionaries)是一种通过键值对(key-value pairs)存储数据的数据结构,使用大括号{}表示,具有快速查找、修改和灵活管理的特点。
字典的创建与初始化创建空字典:使用{}或dict()函数。
empty_dict = {}empty_dict_via_dict = dict()初始化带内容的字典:直接在大括号内定义键值对,或通过dict()函数传入键值对参数。
person = {"name": "Alice", "age": 25}person_via_dict = dict(name="Bob", age=30)
获取所有键(keys):使用keys()方法返回键的视图对象。
keys = person.keys() # 输出: dict_keys(['name', 'age'])获取所有值(values):使用values()方法返回值视图对象。
values = person.values() # 输出: dict_values(['Alice', 25])遍历键值对:使用items()方法返回键值对的视图对象。
for key, value in person.items(): print(f"{key}: {value}")通过键获取值:直接使用键作为索引,若键不存在会引发KeyError。
name = person["name"] # 输出: 'Alice'安全获取值:使用get(key, default)方法,若键不存在返回None或指定的默认值。
city = person.get("city", "Unknown") # 输出: 'Unknown'修改值:通过键直接赋值,若键存在则更新值。
person["age"] = 26添加键值对:若键不存在,直接赋值会新增条目。
person["city"] = "New York"批量更新:使用update()方法合并另一个字典或键值对序列。
person.update({"age": 27, "job": "Engineer"})
设置默认值:使用setdefault(key, default)方法,若键不存在则添加并设置默认值。
country = person.setdefault("country", "USA") # 输出: 'USA'删除指定键值对:使用del语句或pop(key, default)方法。
del person["city"] # 直接删除age = person.pop("age") # 删除并返回值job = person.pop("nonexistent", "Default Job") # 键不存在时返回默认值

清空字典:使用clear()方法移除所有条目。
person.clear()浅拷贝问题:直接赋值会导致两个变量指向同一字典,修改会互相影响。
original = {"a": 1}copy = originalcopy["a"] = 2 # original["a"] 也会变为 2
独立复制:使用dict()函数或copy()方法创建新字典。
independent_copy = dict(original) # 或 original.copy()