35、字典常见操作

小白量化 2025-12-09 16:25:16 37 举报

1、字典常见操作

1.1 查看元素
(1) in:检查一个键是否存在于字典中。如果存在则返回True;否则返回False。
(2) not in:检查一个键是否不存在于字典中。如果不存在则返回True;否则返回False。

# 示例
info = {"name": "xiaobai", "age": 35}
print("age" in info)     # True
print(35 in info)        # False 18 是值不是键
print('a' not in info)  # True

(3)len():获取字典中元素的数量,即键值对的数量。

# 示例
info = {"a": 1, "b": 2, "c": 3, "d": 4, "hahaha": "哈哈哈"}
print(len(info))

(4)字典[键名]:根据键来获取字典中对应的值。如果键不存在,则抛出异常 KeyError

# 示例
info = {"name": "xiaobai", "age": 35}
print(info[0])    # KeyError: 0    字典没有下标 ==> 无序序列 ==> 不支持切片

# 查找存在的键
print(info['age'])

# 查找不存在的键
print(info['tel'])   # KeyError: 'tel'

(5)get(键, 默认值=None):根据键来获取字典中对应的值。如果键不存在,则返回指定的默认值(如果提供了的话),如果没有提供默认值,则返回None。

# 示例
info = {"name": "xiaobai", "age": 35}
# 查找存在的键
print(info.get("age"))

# 查找不存在的键,不指定默认值
print(info.get("tel"))   # None

# 查找不存在的键,并指定默认值
print(info.get("tel", "键名不存在!"))   # 键名不存在!

1.2 修改元素

# 语法格式
字典[键名] = 值

1.3 添加元素

# 语法格式
字典[键名] = 值


# 示例
info = {"name": "xiaobai", "age": 35}

# 通过存在的键修改其对应的值
info["age"] = 2

# 通过不存在的键来添加新的键值对
info["tel"] = 1301111222
print(info)

info = {"a": 1, 'b': 5, "c": 3}
info["b"] = 2           # 修改
info["ccc"] = "哈哈哈"  # 新增
print(info)

1.4 删除元素
(1)del:根据键删除字典中的元素(键值对),如果尝试删除一个不存在的键,则抛出异常 KeyError

# 示例
info = {"a": 1, 'b': 5, "c": 3}

# 删除存在的键
del info["b"]

# 删除不存在的键
del info['x']    # KeyError: 'x'
print(info)

info = {"a": 1, 'b': 5, "c": 3}
del info     # 删除整个字典
print(info)   # NameError: name 'info' is not defined

(2)clear():删除字典中的所有元素,将其变为空字典

# 示例
info = {"a": 1, 'b': 5, "c": 3}
info.clear()
print(info)    # {}

(3)pop(键, 默认值):从字典中移除指定的键及其对应的值,并返回被移除的值。如果指定的键不存在于字典中,并且没有提供默认值,那么将抛出异常KeyError。但是,如果提供了默认值,那么在值不存在时会返回该默认值

# 示例
info = {"a": 1, 'b': 8, "c": 3}

# 删除存在的键并获取该值
print(info.pop("b"))

# 删除不存在的键
info.pop("hhh")     # KeyError: 'hhh'

# 删除不存在的键,并指定默认值
print(info.pop("hhh", "没有找到!"))

print(info)

1.5 遍历字典
字典是可迭代对象,支持for循环遍历

# 示例
info = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
for i in info:    # 默认情况下只遍历键名
   print(i)

(1)keys():获取字典中的所有键的视图对象。

# 示例
info = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
keys_view = info.keys()
print(keys_view, type(keys_view))

# print(keys_view[0])    # TypeError: 'dict_keys' object is not subscriptable

for key in keys_view:
   print(key)

(2)values():获取字典中所有值的视图对象。

# 示例
info = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}

# print(info.values()[0])    # TypeError: 'dict_values' object is not subscriptable

for value in info.values():
   print(value)

(3) items():获取字典中所有键值对的视图对象

# 示例1
info = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
print(info.items())

for item in info.items():
   print(item, type(item))

注意:字典视图对象是动态的,它反映了字典在那一刻的状态。如果原字典发生了变化,那么通过方法获得的视图对象也会相应的更

# 示例2
info = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
# 获取视图对象
items_view = info.items()
print(items_view)
# 删除键值对
info.pop("c")
print(info)
print(items_view)


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0