1. 主页
  2. 文档
  3. Python教程
  4. Python入门
  5. 字典(dict)

字典(dict)

Python 字典(Dictionary)是一种非常重要的数据结构,用于存储键-值对的集合。字典是可变的,可以添加、删除和修改其中的项。


创建字典:

可以使用花括号{}来创建一个空字典,或者使用{key: value, key: value}的格式来创建一个包含键-值对的字典。

empty_dict = {}                        # 创建一个空字典
person = {"姓名""Alice""年龄"30}  # 创建一个包含键-值对的字典


访问字典元素:

可以使用键来访问字典中的值。字典中的键是唯一的。

person = {"姓名""Alice""年龄"30}
name = person["姓名"]  # 获取键"姓名"对应的值,即 "Alice"
age = person["年龄"]    # 获取键"年龄"对应的值,即 30


字典长度:

可以使用内置函数len()来获取字典中键-值对的数量。

person = {"姓名""Alice""年龄"30}
num_items = len(person)  # 获取字典中键-值对的数量,即 2


字典基本操作:

1. 添加键-值对:

可以使用dict[key] = value语法向字典中添加新的键-值对。

person = {"姓名""Alice""年龄"30}
person["城市"] = "纽约"
# 现在,person 变为 {"姓名": "Alice", "年龄": 30, "城市": "纽约"}

2. 修改值:

如果已经存在的键,可以通过赋值来修改其对应的值。

person = {"姓名""Alice""年龄"30}
person["年龄"] = 31
# 现在,person 变为 {"姓名": "Alice", "年龄": 31}

3. 删除键-值对:

可以使用del语句来删除字典中的键-值对。

person = {"姓名""Alice""年龄"30}
del person["年龄"]
# 现在,person 变为 {"姓名": "Alice"}


字典键的特性

1.唯一性

字典中的键必须是唯一的。每个键只能对应一个值。如果您尝试将相同的键添加到字典中多次,后面的键值对将覆盖前面的值。

person = {"姓名""Alice""年龄"30}
person["年龄"] = 31  # 更新键"年龄"的值,不会创建新的键-值对

2.不可变性

字典的键必须是不可变的数据类型,通常使用字符串、数字或元组作为键。这是因为字典使用键来唯一标识值,如果键是可变的,可能会导致问题。

valid_dict = {"key""value"42"forty-two", (12): "tuple_key"}
# 以下操作会引发 TypeError,因为列表是可变的
# invalid_dict = {[1, 2]: "list_key"}

3.无序性

在Python 3.7之前,字典是无序的,这意味着字典中的键-值对没有特定的顺序。从Python 3.7开始,字典保持了插入顺序,即字典中的键-值对按照插入的顺序排列。

fruits = {"apple"3"banana"2"orange"4}
# 在Python 3.7及更高版本中,字典保持插入顺序
# 在之前的版本中,字典可能会以不同的顺序显示

4.可迭代性

可以轻松地遍历字典中的键或值。可以使用keys()方法获取所有键,使用values()方法获取所有值,或者使用items()方法获取所有键-值对。

person = {"姓名""Alice""年龄"30}
keys = person.keys()       # 获取所有键,返回可迭代对象
values = person.values()   # 获取所有值,返回可迭代对象
items = person.items()     # 获取所有键值对,返回可迭代对象


字典内置函数和字典内置方法

字典内置函数

函数 描述
len(dictionary) 返回字典中键-值对的数量。
str(dictionary) 将字典转换为字符串。
type(variable) 返回变量的数据类型,通常用于检查是否为字典。
sorted(iterable) 返回一个排序后的字典键列表。

字典内置方法

方法 描述
dict.clear() 删除字典中的所有键-值对。
dict.copy() 返回字典的浅拷贝(新的字典对象,但键-值对相同)。
dict.get(key, default=None) 返回键 key 对应的值,如果键不存在则返回 default
dict.items() 返回一个包含所有键值对的可迭代对象。
dict.keys() 返回一个包含所有键的可迭代对象。
dict.values() 返回一个包含所有值的可迭代对象。
dict.pop(key, default=None) 删除键 key 对应的键-值对,并返回值;如果键不存在则返回 default
dict.popitem() 随机删除并返回一个键-值对。
dict.setdefault(key, default=None) 返回键 key 对应的值,如果键不存在则设置为 default 并返回。
dict.update(iterable) 使用另一个字典或可迭代对象的键-值对更新字典。
dict.fromkeys(iterable, value=None) 创建一个新字典,以 iterable 中的元素作为键,所有值都设置为 value

我们要如何帮助您?