字典
字典中添加和修改数据的方法
[]处理法
- 字典没有索引的概念,字典是无序的
- 字典中的key是唯一的,key对应的值也是唯一的
- 可以通过
dict[key] = value
的方式修改key对应的value的值- 如果key存在,则该语句作用是修改key对应的value的值
- 如果key不存在,则该语句的作用是添加一组key:value的键值对
update()函数(给当前的字典中添加新的字典)
- 用法:
dict.update(new_dict)
- 参数
new_dict 新传入的字典
- 注意:
- 如果添加的字典中有与原字典相同的key,则原字典key的value会被新字典的value覆盖
setdefault()函数
- 获取某个key的value,如果key不存在于字典中,将会添加key并将value设置为默认值
- 用法:
dict.setdefault(key,value)
- 参数
key 需要获取的key
value 如果key不存在,则会将设置的key:value键值对存入字典的默认值
- 注意:
- 如果字典中存在传入的key,那么该函数返回对应的value值,传入的value没有任何作用
字典的注意事项
- 字典中的每一个key一定是唯一的
- 字典中的数据量没有限制
- 字典中的value可以是任何python的内置数据类型的对象和自定义对象
keys()函数(获取字典中所有的key值)
- 用法:
dict.keys()
- 参数
无需传参,返回一个key集合的为列表
- 注意:
- 返回的是一个dict_keys([key1,key2])函数,不具备列表的所有功能
- 可以使用list函数,将dict_keys()的值传给list函数,即可获得keys的列表
values()函数(获取字典中所有的valuse)
- 用法:
dict.values()
- 参数
无需传参,返回一个values集合的为列表
- 注意:
- 返回的是一个dict_values([value1,value2])函数,不具备列表的所有功能
- 可以使用list函数,将dict_value()的值传给list函数,即可获得values的列表
[]在字典中的获取方法
- 用法:
dic["key"]
- 参数
key 需要获取对应value的key
- 注意:
- 如果获取的key不存在,则会报错
get()函数(获取当前字典中指定的key的value值)
- 用法:
dic.get(key,default=None)
- 参数
key 需要获取对应value的key
default 当key不存在的时候返回的默认值,不传的话默认返回None,也可以自定义
- 注意:
- 如果获的key不存在,则返回默认值(默认是None)
- 在开发中优先使用get()函数对value进行查找
- 只要字典中key对应的value存在,即使value是None,也可以被获取
clear()函数(清空当前字典中的数据)
- 用法:
dic.clear()
- 参数
无参数,无返回值
pop()函数(删除字典中指定的key,并将其结果返回)
- 用法:
dic.pop(key)
- 参数
key 字典中希望被删除的key
- 注意
- 执行后会返回这个key对应的value
- 如果key不存在则报错
del()函数(删除字典或者字典中的key)
- 用法:
del my_dict[key]
del my_dict
- 参数
key 字典中希望被删除的key
- 注意
- 执行后会返回这个key对应的value
- 如果key不存在则报错
copy()函数(将当前的字典复制出一个新的字典)
- 复制出的字典和原字典内存地址不同,不是同一个字典
- 用法:
dic.copy()
- 参数
该函数无参数
- 注意
- 返回一个内容一致,内存地址不同的字典
字典中的成员判断
in 和 not in
- 只能用于判断key值是否存在于字典中
dic = {
"name":"xiaomi"
}
print("name" in dic) # True
print("xiaomi" in dic) # False
get函数
- 可以通过是否有返回值判断key值是否存在与字典中
dic = {
"name":"xiaomi"
}
print(dic.get("name")) # xiaomi
print(bool(dic.get("name"))) # True
print(dic.get("xiaomi")) # None
print(bool(dic.get("xiaomi"))) # False
popitem()函数(删除当前字典中末尾一组键值对并将其返回)
- 用法:
dic.popitem()
- 参数
该函数无参数
- 注意
- 返回被删除的键值对,用元组包裹
- 0索引是key,1索引是value
- 如果字典为空,就直接报错