Python 3 字典(Dictionary)详解
                           
天天向上
发布: 2025-03-14 22:22:03

原创
710 人浏览过

在 Python 3 中,字典(Dictionary)是一个键值对(key-value pair)数据结构,类似于 JavaScript 的对象(Object)或 JSON。字典是无序、可变、且键唯一的数据结构,适用于快速查找和存储数据。


1. 字典的定义

字典使用 花括号 {} 创建,每个键值对用 key: value 表示,键值对之间用 逗号 , 分隔。

📌 示例代码:

# 定义一个字典
person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
print(person)
# 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

注意事项

  • 键(Key)必须是不可变类型(如字符串、数字、元组)。
  • 值(Value)可以是任何数据类型(如列表、字典、字符串、数字等)。
  • 键唯一,不允许重复,如果重复,后面的值会覆盖前面的值。

📌 示例代码(键唯一性):

person = {"name": "Alice", "age": 25, "name": "Bob"}
print(person)  # {'name': 'Bob', 'age': 25},前面的 "Alice" 被覆盖

2. 访问字典元素

(1)通过 key 访问

📌 示例代码:

person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"])  # Alice
print(person["age"])   # 25

注意:如果键不存在,会报 KeyError

(2)使用 get() 方法

📌 示例代码:

print(person.get("city"))      # New York
print(person.get("country"))   # None
print(person.get("country", "Unknown"))  # 使用默认值 Unknown

3. 修改字典

可以通过 key 直接修改值,如果 key 存在,则更新值;如果 key 不存在,则新增键值对。

📌 示例代码:

person = {"name": "Alice", "age": 25}
person["age"] = 26   # 修改已有键的值
person["city"] = "New York"  # 新增键值对
print(person)
# 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}

4. 删除字典元素

(1)使用 del 关键字

📌 示例代码:

person = {"name": "Alice", "age": 25, "city": "New York"}
del person["age"]  # 删除键 "age"
print(person)  # {'name': 'Alice', 'city': 'New York'}

(2)使用 pop() 方法

📌 示例代码:

age = person.pop("age", "Key Not Found")  # 移除 "age",返回值 25
print(age)  # 25
print(person)  # {'name': 'Alice', 'city': 'New York'}

(3)使用 popitem() 方法

📌 示例代码:

person = {"name": "Alice", "age": 25}
item = person.popitem()  # 删除并返回最后一个键值对
print(item)  # ('age', 25)
print(person)  # {'name': 'Alice'}

(4)清空字典 clear()

📌 示例代码:

person.clear()
print(person)  # {}

5. 遍历字典

(1)遍历所有键

📌 示例代码:

person = {"name": "Alice", "age": 25, "city": "New York"}
for key in person:
    print(key)  # name, age, city

(2)遍历所有值

📌 示例代码:

for value in person.values():
    print(value)  # Alice, 25, New York

(3)遍历键值对

📌 示例代码:

for key, value in person.items():
    print(f"{key}: {value}")
# name: Alice
# age: 25
# city: New York

6. 字典常用方法

方法说明示例
dict.keys()获取所有键person.keys()
dict.values()获取所有值person.values()
dict.items()获取所有键值对person.items()
dict.update(new_dict)合并字典person.update({"country": "USA"})
dict.copy()复制字典new_dict = person.copy()

📌 示例代码:

person = {"name": "Alice", "age": 25}
new_dict = person.copy()  # 复制字典
print(new_dict)  # {'name': 'Alice', 'age': 25}

person.update({"city": "New York", "age": 26})  # 更新字典
print(person)  # {'name': 'Alice', 'age': 26, 'city': 'New York'}

7. 字典合并

Python 3.9+ 提供 | 运算符用于合并字典。

📌 示例代码(Python 3.9+):

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2  # 合并,dict2 的 "b" 覆盖了 dict1 的 "b"
print(merged_dict)  # {'a': 1, 'b': 3, 'c': 4}

对于 Python 3.8 及以下,可以使用 update() 方法:

dict1.update(dict2)
print(dict1)  # {'a': 1, 'b': 3, 'c': 4}

8. 字典推导式(Dictionary Comprehension)

Python 支持字典推导式,用于快速创建字典。

📌 示例代码:

squares = {x: x**2 for x in range(1, 6)}
print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

9. 字典与 JSON

Python 的 dictJSON 结构类似,可以使用 json 模块进行转换。

📌 字典转换为 JSON

import json

person = {"name": "Alice", "age": 25, "city": "New York"}
json_data = json.dumps(person)  # 转换为 JSON 字符串
print(json_data)  # {"name": "Alice", "age": 25, "city": "New York"}

📌 JSON 转换为字典

dict_data = json.loads(json_data)
print(dict_data)  # {'name': 'Alice', 'age': 25, 'city': 'New York'}

总结

字典是键值对数据结构,键必须唯一且不可变
支持 keys()values()items() 进行遍历
可以使用 get() 方法获取值,避免 KeyError
支持合并、修改、删除和字典推导式
适用于快速查找数据、存储配置信息、解析 JSON 数据

字典适用于存储结构化数据,访问速度比列表快! 更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *