Skip to content

Python 字典 (Dictionary)

字典是 Python 中一种非常灵活和强大的内置数据类型。它以键值对 (key-value pairs) 的形式存储数据,提供了一种高效的方式来查找、添加和删除条目。

字典的特性

  • 键值对: 每个元素都由一个唯一的“键”和一个对应的“值”组成。
  • 无序性 (历史): 在 Python 3.7 之前的版本中,字典是无序的。从 Python 3.7 开始,字典会保持元素的插入顺序。
  • 可变性: 字典是可变的,你可以随时添加、修改或删除键值对。
  • 唯一的键: 字典中的键必须是唯一的,且必须是不可变类型(如字符串、数字或元组)。值则可以是任意类型,也可以重复。

创建字典

字典由大括号 {} 定义,其中包含一系列的 key: value 对。

python
# 创建一个空字典
empty_dict = {}

# 创建一个字典
person = {
    "name": "John Doe",
    "age": 30,
    "city": "New York",
    "is_student": False
}

# 也可以使用 dict() 构造函数
car = dict(brand="Ford", model="Mustang", year=1964)

print(person)
print(car)

访问字典元素

你可以通过键来访问其对应的值。

使用方括号 []

python
person = {"name": "John Doe", "age": 30}

print(person["name"]) # 输出: John Doe

# 如果键不存在,会引发 KeyError
# print(person["country"]) # KeyError: 'country'

使用 .get() 方法

.get() 方法更安全,如果键不存在,它会返回 None(或你指定的默认值),而不是引发错误。

python
person = {"name": "John Doe", "age": 30}

print(person.get("age"))        # 输出: 30
print(person.get("country"))    # 输出: None
print(person.get("country", "USA")) # 输出: USA (提供了默认值)

修改和添加元素

你可以通过键来添加新的键值对或修改已有的值。

python
person = {"name": "John Doe", "age": 30}

# 修改已有的值
person["age"] = 31
print(person) # 输出: {'name': 'John Doe', 'age': 31}

# 添加新的键值对
person["city"] = "Boston"
print(person) # 输出: {'name': 'John Doe', 'age': 31, 'city': 'Boston'}

删除元素

  • del dict[key]: 删除指定的键值对。
  • dict.pop(key): 删除并返回指定键的值。
  • dict.popitem(): 删除并返回最后一个插入的键值对(在 Python 3.7+)。
  • dict.clear(): 清空字典。

遍历字典

有几种方式可以遍历字典中的所有元素。

python
person = {"name": "John Doe", "age": 30, "city": "New York"}

# 遍历所有的键
for key in person.keys():
    print(key)

# 遍历所有的值
for value in person.values():
    print(value)

# 遍历所有的键值对 (最常用)
for key, value in person.items():
    print(f"{key}: {value}")

.keys(), .values(), 和 .items() 返回的是特殊的“视图对象”,它们提供了字典条目的动态视图,意味着如果字典发生变化,视图也会相应地反映这些变化。

本站内容仅供学习和研究使用。