LLM系列:1.python入门:7.字典型对象(dict)
·
字典型对象(dict)
一. 字典基础
==字典(dict)是Python中无序的可变容器。它由一个个键值对(Key-Value)构成。==字典也被称作关联数组或者哈希表。
1. 字典的创建
外侧使用大括号 {} 圈定,内部是由冒号 : 连接的键值对,不同键值对之间用逗号 , 分隔。
核心规则 (Point):
- 键(Key)必须是独一无二的,且只能使用不可变类型对象充当(如:数字、字符串、元组)。
- 值(Value)可以是任意类型对象(如:列表、字典等可变类型均可)。
(1). 直接创建与空字典
# 直接创建字典
d = {'A': 1, 'B': 2, 'C': 3}
# 包含不同 Key 类型的字典
d1 = {1: 1, 'A': 2, (1,): 1}
# 创建空字典
dn = {}
(2). 使用 dict() 函数创建字典
由于字典数据结构特殊,dict() 函数的输入要求也较为特殊。
方法一:传入包含双元素元组的列表
传入一个列表,列表内的元素必须是长度为 2 的元组。元组的第一个元素变为 Key(必须是不可变类型),第二个元素变为 Value。
dict([(1, 4), (2, 3)])
# 结果为:{1: 4, 2: 3}
方法二:通过关键字参数赋值
赋值过程将转化为字典的对应关系,变量名变为 Key(自动转化为字符串),变量值变为 Value。此方法只能创建Key为字符串类型的字典。
dict(a = 1, b = 2)
# 结果为:{'a': 1, 'b': 2}
2. 字典的基础索引
字典由于其无序性,不支持通过数字位置下标索引,而是通过输入 Key 来查找对应的 Value。
(1). 一般索引方法 dict[key]
d = {'A': 1, 'B': 2, 'C': 3}
# 查找 key 为 'A' 的 Value
d['A'] # 结果为 1
# 因为字典是可变对象,可以通过索引直接修改或新增键值对
d['A'] = 2 # 修改已有 Key 的值
d['D'] = 4 # 增加新的 Key-Value 对
注:如果使用 dict[key] 查找了一个不存在的 Key,程序会直接报错 KeyError。
二. 字典常用方法
1. get - 安全获取键值
作用:获取字典中指定键的值。与直接索引不同,当对应键不存在时,不会报错,而是返回指定的默认值。
dict.get(key, default=None)
参数:
- 键 (key): 需要查找的目标键名称(Any,通常为不可变类型)。
- 默认值 (default): 可选参数,当查找的键不存在时返回的默认值(Any)。如果不写,默认返回
None。
返回值:
- 成功: 键存在时返回对应的 Value 值(Any);键不存在时返回设定的默认值(Any)。
示例:
d1 = {1: 1, 'A': 2, (1,): 1}
# 键存在,返回对应的值
d1.get('A') # 返回 2
# 键不存在,不写第二个参数,无任何显式报错和输出 (返回 None)
d1.get(3)
# 键不存在,指定返回 'Error'
d1.get(3, 'Error') # 返回 'Error'
2. keys - 获取所有键
作用:提取并返回字典中所有的键(Key)。
dict.keys()
参数:
- 无参数(None)。
返回值:
- 成功: 返回一个包含字典所有键的视图对象(dict_keys)。若要进行列表操作,可使用
list()或tuple()函数将其转化。
示例:
d = dict(A = 1, B = 2, C = 3)
# 获取所有键
d.keys()
# 结果为 dict_keys(['A', 'B', 'C'])
# 转化为列表
list(d.keys()) # 结果为 ['A', 'B', 'C']
3. values - 获取所有值
作用:提取并返回字典中所有的值(Value)。
dict.values()
参数:
- 无参数(None)。
返回值:
- 成功: 返回一个包含字典所有值的视图对象(dict_values)。也可通过
list()或tuple()函数转化。
示例:
d = dict(A = 1, B = 2, C = 3)
# 获取所有值
dv = d.values()
# 结果为 dict_values([1, 2, 3])
# 转化为元组
tuple(dv) # 结果为 (1, 2, 3)
4. items - 获取所有键值对
作用:将字典中的每个键值对打包成元组形式进行返回。
dict.items()
参数:
- 无参数(None)。
返回值:
- 成功: 返回一个由每对
(key, value)组成的视图对象(dict_items)。常用于循环遍历。
示例:
d = dict(A = 1, B = 2, C = 3)
# 打包返回键值对
di = d.items()
# 结果为 dict_items([('A', 1), ('B', 2), ('C', 3)])
# 转化为列表
list(di) # 结果为 [('A', 1), ('B', 2), ('C', 3)]
5. update - 更新字典
作用:使用另一个字典来更新当前字典。注:更新是在原对象基础上直接修改。有新的部分则添加,键重复的部分则覆盖更新,其他保留。
dict.update(other_dict)
参数:
- 字典 (other_dict): 提供更新内容的字典对象或可迭代的键值对集合(dict / Iterable)。
返回值:
- 成功: 无返回值(NoneType),直接在原字典对象上进行修改。
示例:
d = dict(A = 1, B = 2, C = 3)
d1 = dict(B = 2, C = 4, D = 5)
# 使用 d1 更新 d
# B 相同保留,C 的值被覆盖为 4,新增 D: 5
d.update(d1)
# 原字典 d 变为:{'A': 1, 'B': 2, 'C': 4, 'D': 5}
6. setdefault - 默认赋值
作用:根据键是否存在,有选择性地获取或修改字典。常用于为缺失的键设置初始默认值。
dict.setdefault(key, default=None)
参数:
- 键 (key): 需要判断和设置的备选键(Any,不可变类型)。
- 默认值 (default): 备选键对应的默认值(Any)。
返回值:
- 成功: 若原字典中该键存在,则返回原字典中该键对应的 Value(Any);若原字典中该键不存在,则将该键值对添加至字典中,并返回设定的 default 值(Any)。
示例:
d = dict(A = 1, B = 2, C = 3)
# 1. 备选键 'A' 已存在
# 返回原对应值 1,输入的参数 5 无任何作用,原字典不改变
val1 = d.setdefault('A', 5)
# 2. 备选键 'D' 不存在
# 返回输入的参数 5,并将 'D': 5 添加进原字典
val2 = d.setdefault('D', 5)
# d 变为 {'A': 1, 'B': 2, 'C': 3, 'D': 5}
更多推荐


所有评论(0)