[阶段一] 5. Python字典常用方法

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 表示需要获取的 keyvalue 表示如果 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 函数的功能是获取当前字典中指定 keyvalue

用法:dict.get(key, default=None),参数 key 表示需要获取 valuekeydefault 表示如果 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
  • 字典的成员判断:

可以通过 innot in 判断成员是否存在。示例:

>>> person = {'name': 'xiaobai', 'age': 18}

>>> 'name' in person
True

>>> 'job' not in person
True

还可以通过 get 函数判断成员是否存在,但是需要注意 valueFalse 类型值的情况。

>>> person = {'name': 'xiaobai', 'age': 18, 'height': 0}

>>> bool(person.get('name'))
True

>>> bool(person.get('height'))
False

>>> 'height' in person
True

优先使用 innot 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 函数需要注意,如果字典为空,则直接报错。


数据类型与布尔值的关系

每一种数据类型,自身的值都有表示 TrueFalsenot 对于一切结果取反。

数据类型TrueFalse
int非00
float非0.00.0
strlen(str) != 0len(str) = 0 即 ‘’
listlen(list) != 0len(list) = 0 即 []
tuplelen(tuple) != 0len(tuple) = 0 即 ()
dictlen(dict) != 0len(dict) = 0 即 {}
Nonenot NoneNone

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值