Python 标准库 dict 支持方法详解

1 list(dict)

描述:返回字典中使用的所有键的列表

>>> b = {'one'1'two'2'three'3}
>>> list(b)
['one''two''three']

2 len(dict)

描述:返回字典中的项数

>>> b = {'one'1'two'2'three'3}
>>> len(b)
3

3 dict[key]

描述:返回字典中以 key 为键的项

说明:如果映射中不存在 key 则会引发 KeyError,除非定义了__missing__()方法

# 未定义__missing()__方法
>>> b = {'one'1'two'2'three'3}
>>> b['one']
1
>>> b['ten']
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
KeyError: 'ten'

# 定义了_missing()__方法
>>> class Counter(dict):
...     def __missing__(self, key):
...         return 0
...
>>> c = Counter()
>>> c['red']
0

4 dict[key] = value

描述:将字典键的值设为value

>>> b = {'one'1'two'2'three'3}
>>> b['one']
1
>>> b['one'] = 3
>>> b
{'one'3'two'2'three'3}

5 del dict[key]

描述:将键key从字典中移除

说明:如果映射中不存在 key 则会引发 KeyError

>>> b = {'one'1'two'2'three'3}
>>> del b['one']
>>> b
{'two'2'three'3}
>>> del b['ten']
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
KeyError: 'ten'

6 key in dict

描述:如果字典中存在键 key 则返回 True,否则返回 False

>>> b = {'one'1'two'2'three'3}
>>> 'one' in b
True
>>> 'ten' in b
False

7 key not in dict

描述:如果字典中不存在键 key 则返回 False,否则返回 True

>>> b = {'one'1'two'2'three'3}
>>> 'one' not in b
False
>>> 'ten' not in b
True

8 dict.clear()

描述:移除字典中的所有元素

>>> b = {'one'1'two'2'three'3}
>>> b.clear()
>>> b
{}

9 dict.copy()

描述:返回原字典的浅拷贝

>>> b = {'one'1'two'2'three'3}
>>> other = b.copy()
>>> other
{'one'1'two'2'three'3}

10 dict.get(key[, default])

描述:如果 key 存在于字典中则返回 key 的值,否则返回 default

说明:如果 default 未给出则默认为 None,因而此方法绝不会引发 KeyError

>>> b = {'one'1'two'2'three'3}
>>> b.get('one')
1
>>> b.get('ten')
>>> print(b.get('ten'))
None
>>> print(b.get('ten''default value is 0'))
default value is 0

11 dict.items()

描述:返回由字典项 ((键, 值) 对) 组成的一个新视图

说明:常用于for语句中的unpack

>>> b = {'one'1'two'2'three'3}
>>> b.items()
dict_items([('one'1), ('two'2), ('three'3)])
>>> for k, v in b.items():
...     print("Key: ", k, " with value: ", v)
...
Key:  one  with value:  1
Key:  two  with value:  2
Key:  three  with value:  3

12 dict.keys()

描述:返回由字典键组成的一个新视图

>>> b = {'one'1'two'2'three'3}
>>> b.keys()
dict_keys(['one''two''three'])

13 dict.pop(key[, default])

描述:如果 key 存在于字典中则将其移除并返回其值,否则返回 default

说明:如果 default 未给出且 key 不存在于字典中,则会引发 KeyError。

>>> b = {'one'1'two'2'three'3}
>>> b.pop('one')
1
>>> b
{'two'2'three'3}
>>> b.pop('ten')
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
KeyError: 'ten'
>>> b
{'two'2'three'3}
>>> b.pop('ten''default value')
'default value'
>>> b
{'two'2'three'3}

14 dict.popitem()

描述:从字典中移除并返回一个 (键, 值) 对

说明:

  • 键值对会按 LIFO 的顺序被返回

  • 如果字典为空,将引发 KeyError

>>> b = {'one'1'two'2'three'3}
>>> b.popitem()
('three'3)
>>> b
{'one'1'two'2}
>>> b.popitem()
('two'2)
>>> b.popitem()
('one'1)
>>> b
{}
>>> b.popitem()
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
KeyError: 'popitem(): dictionary is empty'

15 dict.setdefault(key[, default])

描述:如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default

说明:default 默认为 None

>>> b = {'one'1'two'2'three'3}
>>> b.setdefault('ten')
>>> b
{'one'1'two'2'three'3'ten'None}
>>> b.setdefault('one'0)
1
>>> b.setdefault('nine'0)
0
>>> b
{'one'1'two'2'three'3'ten'None'nine'0}

16 dict.update([other])

说明:使用来自 other 的键/值对更新字典,覆盖原有的键

说明:该函数并不返回新的dict,而是返回 None

>>> b = {'one'1'two'2'three'3}
>>> b.update(one=4, ten=10)
>>> b
{'one'4'two'2'three'3'ten'10}

17 dict.values()

说明:返回由字典值组成的一个新视图

>>> b = {'one'1'two'2'three'3}
>>> b.values()
dict_values([123])



原文始发于微信公众号(Know Why It):Python 标准库 dict 支持方法详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/276327.html

(0)
python学霸的头像python学霸bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!