什么是Python中的字典(dictionary)?

2025年9月19日 by admin

在 Python 中,字典(dictionary) 是一种内置的数据结构,用于存储一组无序的键值对(key-value pairs)。每个键值对由一个键(key)和一个值(value)组成,可以用来快速查找、插入、删除等操作。

字典的基本特征:

  1. 键唯一性:字典中的每个键必须是唯一的。
  2. 键的不可变性:字典的键必须是不可变的数据类型(如数字、字符串、元组等)。
  3. 无序性:字典中的元素是无序的,意味着它们没有固定的顺序。在 Python 3.7 以后,字典的插入顺序得到了保留,但仍然不意味着字典本身是有序的。
  4. 可变性:字典是可变的,可以在字典中添加、修改和删除元素。

字典的创建

你可以通过大括号 {} 或者 dict() 函数来创建字典。

示例 1:使用大括号

my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict)
# 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

示例 2:使用 dict() 函数

my_dict = dict(name='Bob', age=30, city='Los Angeles')
print(my_dict)
# 输出: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}

访问字典中的值

你可以通过键来访问字典中的值。如果键不存在,会引发 KeyError 异常。

示例:

my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 通过键访问值
print(my_dict['name'])  # 输出: Alice

# 如果键不存在,会抛出异常
# print(my_dict['country'])  # 会抛出 KeyError: 'country'

添加或更新字典中的元素

你可以通过赋值的方式向字典中添加新元素或更新已有元素。

示例:

my_dict = {'name': 'Alice', 'age': 25}

# 更新已有键的值
my_dict['age'] = 26

# 添加新的键值对
my_dict['city'] = 'New York'

print(my_dict)
# 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}

删除字典中的元素

可以使用 del 关键字或者 pop() 方法删除字典中的元素。

示例 1:使用 del

my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
del my_dict['age']
print(my_dict)
# 输出: {'name': 'Alice', 'city': 'New York'}

示例 2:使用 pop()

my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
removed_value = my_dict.pop('city')
print(my_dict)
# 输出: {'name': 'Alice', 'age': 25}
print('Removed value:', removed_value)
# 输出: Removed value: New York

常用字典方法

  • get(key):返回键对应的值,如果键不存在则返回 None(或者指定的默认值)。
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict.get('name'))  # 输出: Alice
print(my_dict.get('address', 'Unknown'))  # 输出: Unknown
  • keys():返回字典中的所有键。
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict.keys())  # 输出: dict_keys(['name', 'age'])
  • values():返回字典中的所有值。
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict.values())  # 输出: dict_values(['Alice', 25])
  • items():返回字典中的所有键值对。
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict.items())  # 输出: dict_items([('name', 'Alice'), ('age', 25)])
  • popitem():随机删除并返回字典中的一个键值对(Python 3.7+ 按照插入顺序返回)。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict.popitem())  # 输出: ('city', 'New York')
  • clear():删除字典中的所有元素。
my_dict = {'name': 'Alice', 'age': 25}
my_dict.clear()
print(my_dict)  # 输出: {}

字典的遍历

可以使用 for 循环遍历字典中的键、值或键值对。

遍历字典的键:

my_dict = {'name': 'Alice', 'age': 25}
for key in my_dict:
    print(key)
# 输出:
# name
# age

遍历字典的值:

my_dict = {'name': 'Alice', 'age': 25}
for value in my_dict.values():
    print(value)
# 输出:
# Alice
# 25

遍历字典的键值对:

my_dict = {'name': 'Alice', 'age': 25}
for key, value in my_dict.items():
    print(key, value)
# 输出:
# name Alice
# age 25

总结

  • 字典是一种无序的键值对集合,适用于需要通过键快速访问值的场景。
  • 字典的键是唯一的,并且是不可变类型。
  • 可以通过 get(), keys(), values(), items() 等方法访问和操作字典。
  • 字典是可变的,可以动态添加、修改和删除元素。

字典是 Python 中非常常用且强大的数据结构之一,常用于存储关联数据。