23.字典的操作

发布时间 2023-11-11 18:31:15作者: 想要暴富的小男孩

字典操作

字典数据获取类操作

keys() 用来获取字典中所有的 key, 保存到一个列表中,并以 dict_keys类型返回

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
ks = stu.keys()
print(ks)

values() 用来获取字典中所有的value, 保存到一个列表中,并以 dict_values 类型返回

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
ks = stu.values()
print(ks)

items() 用来获取字典中所有的键值对,每一个元素键值对都以一个元组保存,将所有元素元组保存到一个列表中,并以 dict_items 类型返回

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
ks = stu.items()
print(ks)

get(key, default) 用来获取key对应的值,如果指定的key不存在,则返回默认值。

字典可以使用 字典对象[key]的形式获取键值对,但是该方法如果指定的 key 不存在,程序会抛出一个错误。此时可以使用get()替代该取值方法

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
# print(stu["name"])
# print(stu["hobby"])
print(stu.get("name"))
print(stu.get("hobby"))
print(stu.get("hobby","无数据"))

字典添加更新类操作

setdefault(key,default) 给一个不存在的key添加一个默认值并将该键值对保存到字典中。

在一些场景下,字典的key存在,但是该key却没有对应的值,此时,就可以使用该方法,为当前的key添加一个默认值。比如服务端要保存客户端发起请求时携带的请求头中的信息。

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}

stu.setdefault("hobby1")
print(stu)
stu.setdefault("hobby2", "无")
print(stu)

fromkeys(keys,val) 用于创建一个新字典,以序列 keys 中元素做字典的键,value 为字典所有键对应的初始值,默认为None

该方法是一个静态方法,需要使用字典类型名 dict 调用。 该方法如果给给定 keys 参数,则所有的key对应值都为默认值 None,如果给定 val值,则所有key对应的值为 val。

ks = ("name", "age", "gender")
s1 = dict.fromkeys(ks)
print(s1)

s2 = dict.fromkeys(ks,"无")
print(s2)

update(d/iterable) 使用参数中的数据更新当前字典。

该方法的参数可以接收一个字典(大多数的使用方式),也可以接收一个可迭代对象,如果参数数据中的key在当前字典中存在,则使用新值更新字典中的键值对,如果参数数据中的key在当前字内中不存在,则将键值对添加到当前字典中。

# 更新目标数据是一个字典
stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
newStu = {"name":"Jack","hobby":"eat"}
stu.update(newStu)
print(stu)
# 更新目标数据是一个可迭代对象
stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
newStu = (("name","Rose"),["hobby","play"])
stu.update(newStu)
print(stu)

字典删除类操作

popitem() 用来获取并删除字典中的最后一个键值对,返回一个元组,如果字典为空时,则抛出一个错误

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
v = stu.popitem()
print(v)
print(stu)

v = stu.popitem()
print(v)
print(stu)

print({}.popitem())

pop(key) 用于获取并删除字典中指定key对应的键值对。如果指定的key不存在,则抛出错误

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
v = stu.pop("name")
print(v)
print(stu)

clear() 清空字典中所有的键值对元素

stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}

print(stu)
stu.clear()
print(stu)