python字典常用方法
字典没有索引,列表的索引就类似字典的 key
,只不过字典的 key
不会像索引那样依次 + 1,key
是随机的,字典通过 key
查找到这个 key
对应的 value
。
字典可以通过 dict[key] = value
来进行添加或修改,添加还是修改取决于 key
是否存在于当前字典中。示例:
>>> person = {
'name': 'xiaobai'}
>>> person['age'] = 18
>>> person
{
'name': 'xiaobai', 'age': 18}
>>> person['age'] = 16
>>> person
{
'name': 'xiaobai', 'age': 16}
update
函数:
update
函数的功能是添加新的字典,如新字典中有和原字典相同的 key
,则该 key
对应的 value
会被新字典的 value
覆盖。
用法:dict.update(new_dict)
,参数 new_dict
表示要添加的新的字典。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> xiaohei = {
'name': 'xiaohei', 'age': 16, 'job': 'student'}
>>> person.update(xiaohei)
>>> person
{
'name': 'xiaohei', 'age': 16, 'job': 'student'}
setdefault
函数:
setdefault
函数的功能是获取某个 key
对应的 value
,如 key
不存在于字典中,将会添加 key
并将 value
设为默认值。
用法:dict.setdefault(key, value)
,参数 key
表示需要获取的 key
,value
表示如果 key
不存在,对应这个 key
存入字典的默认值。示例:
>>> person
{
'name': 'xiaohei', 'age': 16, 'job': 'student'}
>>> value = person.setdefault('job', 'teacher')
>>> value
'student'
>>> person
{
'name': 'xiaohei', 'age': 16, 'job': 'student'}
>>> value = person.setdefault('height', 180)
>>> value
'180'
>>> person
{
'name': 'xiaohei', 'age': 16, 'job': 'student', 'height': '180'}
- 字典的注意事项:
字典中每一个 key 一定是唯一的
字典中的数据量没有限制
字典中的 value 可以是任何 python 的内置数据类型的对象和自定义的对象
keys
函数:
keys
函数的功能是获取当前字典中所有的 key
,返回一个 key
组成的伪列表。
用法:dict.keys()
,括号内无参数。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> person.keys()
dict_keys(['name', 'age'])
>>> type(person.keys())
<class 'dict_keys'>
>>> key_list = list(person.keys())
>>> key_list
['name', 'age']
keys
函数返回的 dict_keys(['name', 'age'])
完全不具备列表的所有功能,无法使用索引和列表的内置函数。要想具备列表的功能,可以使用 list
函数转化为列表。
values
函数:
values
函数的功能是获取当前字典中所有的 value
,返回一个 value
组成的伪列表。
用法:dict.values()
,括号内无参数。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> person.values()
dict_values(['xiaobai', 18])
>>> type(person.values())
<class 'dict_values'>
>>> value_list = list(person.values())
>>> value_list
['xiaobai', 18]
values
函数返回的 dict_values(['xiaobai', 18])
完全不具备列表的所有功能,无法使用索引和列表的内置函数。要想具备列表的功能,可以使用 list
函数转化为列表。
get
函数:
get
函数的功能是获取当前字典中指定 key
的 value
。
用法:dict.get(key, default=None)
,参数 key
表示需要获取 value
的 key
,default
表示如果 key
不存在则返回此默认值,默认是 None
。示例:
>>> person.get('name')
'xiaobai'
>>> person.get('age')
18
>>> person.get('job')
>>> person['job']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'job'
[]
与 get
函数的区别:
[] 如果获取的 key 不存在,则直接报错
get 函数如果获取的 key 不存在,则返回默认值
所以开发中,优先使用 get 函数
clear
函数:
clear
函数的功能是清空当前的字典中所有的数据。
用法:dict.clear()
,括号内无参数。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> person.clear()
>>> person
{
}
pop
函数:
pop
函数的功能是从当前字典中取出指定的 key
,并返回其对应的 value
,当前字典会删除取出的 key: value
键值对。
用法:dict.pop(key)
,参数 key
表示要从字典中取出的 key
。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> person.pop('age')
18
>>> person
{
'name': 'xiaobai'}
del
函数:
del
函数的功能是删除当前字典中指定的 key
及其对应的 value
。
用法:del dict(key)
,参数 key
表示要删除的 key
。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> del person['age']
>>> person
{
'name': 'xiaobai'}
del dict
会将当前字典 dict
这个对象删除。
copy
函数:
copy
函数的功能是复制当前字典,返回一个新的字典,新的字典和当前字典不是同一个内存地址。
用法:dict.copy()
,括号内无参数。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> new_person = person.copy()
>>> new_person
{
'name': 'xiaobai', 'age': 18}
>>> id(person)
2102412004672
>>> id(new_person)
2102412004160
- 字典的成员判断:
可以通过 in
和 not in
判断成员是否存在。示例:
>>> person = {
'name': 'xiaobai', 'age': 18}
>>> 'name' in person
True
>>> 'job' not in person
True
还可以通过 get
函数判断成员是否存在,但是需要注意 value
是 False
类型值的情况。
>>> person = {
'name': 'xiaobai', 'age': 18, 'height': 0}
>>> bool(person.get('name'))
True
>>> bool(person.get('height'))
False
>>> 'height' in person
True
优先使用 in
和 not in
来判断字典中的成员是否存在。
popitem
函数:
popitem
函数的功能是删除当前字典中末尾的一对 key: value
,并将其返回。
用法:dict.popitem()
,括号内无参数,返回被删除的用元组包裹的键值对,0 索引是 key
,1 索引是 value
。示例:
>>> person = {
'name': 'xiaobai', 'age': 18, 'height': 0}
>>> height = person.popitem()
>>> height
('height', 0)
>>> height[0]
'height'
>>> height[1]
0
使用 popitem
函数需要注意,如果字典为空,则直接报错。
数据类型与布尔值的关系
每一种数据类型,自身的值都有表示 True
与 False
。not
对于一切结果取反。
数据类型 | True | False |
---|---|---|
int | 非0 | 0 |
float | 非0.0 | 0.0 |
str | len(str) != 0 | len(str) = 0 即 ‘’ |
list | len(list) != 0 | len(list) = 0 即 [] |
tuple | len(tuple) != 0 | len(tuple) = 0 即 () |
dict | len(dict) != 0 | len(dict) = 0 即 {} |
None | not None | None |