Python字典中8个常见内置函数,一次性给你总结!
字典是Python中很重要的数据类型,我们在日后的学习中,会经常遇到。因此,有8个常用的内置函数,我觉得你一定需要知道。
d.clear()
含义:清除字典。
d = {'a': 10, 'b': 20, 'c': 30}
>>> d
{'a': 10, 'b': 20, 'c': 30}
>>> d.clear()
>>> d
{}
d.get()
含义:如果键存在于字典中,则返回该键的值。
d.get()搜索字典d的,如果发现返回关联的值。如果未找到,则返回None。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> print(d.get('b'))
20
>>> print(d.get('z'))
None
如果未找到,并且指定了可选参数,则返回该值而不是None。
>>> print(d.get('z', -1))
-1
d.items()
含义:返回字典中的键值对列表。
d.items()返回包含键值对的元组列表。每个元组中的第一项是键,第二项是键的值。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d
{'a': 10, 'b': 20, 'c': 30}
>>> list(d.items())
[('a', 10), ('b', 20), ('c', 30)]
>>> list(d.items())[1][0]
'b'
>>> list(d.items())[1][1]
20
d.keys()
含义:返回字典中的键列表。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d
{'a': 10, 'b': 20, 'c': 30}
>>> list(d.keys())
['a', 'b', 'c']
d.values()
含义:返回字典中的值列表。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d
{'a': 10, 'b': 20, 'c': 30}
>>> list(d.values())
[10, 20, 30]
即使值重复,也会被多次返回。
>>> d = {'a': 10, 'b': 10, 'c': 10}
>>> d
{'a': 10, 'b': 10, 'c': 10}
>>> list(d.values())
[10, 10, 10]
d.pop()
含义:从字典中删除一个键,如果它存在,并返回它的值。
如果存在于字典中,则d.pop()删除并返回其关联值。如果不存在,则引发异常KeyError。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d.pop('b')
20
>>> d
{'a': 10, 'c': 30}
>>> d.pop('z')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
d.pop('z')
KeyError: 'z'
如果不在字典中,并且指定了可选参数,则返回该值,并且不会引发异常。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d.pop('z', -1)
-1
>>> d
{'a': 10, 'b': 20, 'c': 30}
d.popitem()
含义:从字典中删除键值对。
d.popitem()用于删除字典中,最后面的键值对。直到字典被删除至空,则d.popitem()引发KeyError异常。
>>> d = {'a': 10, 'b': 20, 'c': 30}
>>> d.popitem()
('c', 30)
>>> d
{'a': 10, 'b': 20}
>>> d.popitem()
('b', 20)
>>> d
{'a': 10}
>>> d = {}
>>> d.popitem()
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
d.popitem()
KeyError: 'popitem(): dictionary is empty'
注意:在低于 3.6 的 Python 版本中,popitem()将返回任意(随机)键值对,因为Python 字典在 3.6 版本之前是无序的。
d.update()
含义:将字典与另一个字典或可迭代的键值对合并。
>>> d1 = {'a': 10, 'b': 20, 'c': 30}
>>> d2 = {'b': 200, 'd': 400}
>>> d1.update(d2)
>>> d1
{'a': 10, 'b': 200, 'c': 30, 'd': 400}
如果想学习软件测试,就快加入:893694563,群内学软件测试,分享技术和学习资料,陪你一起成长和学习。
好好学习,天天向上!
学习不刻苦,不如卖红薯!