该类collections.defaultdict采用默认工厂,用于生成默认值。
如果包含在dict-like 对象中的值应默认为False,则可以将实例创建为:
d_false = defaultdict(bool)
Run Code Online (Sandbox Code Playgroud)
为默认值实现相同的最pythonic 的方法是True什么?
换句话说,是否有一个标准的可调用对象返回True,它习惯上用作bool?
当然,工厂可以构建为 lambda 表达式:
d_true = defaultdict(lambda: True)
Run Code Online (Sandbox Code Playgroud)
但这可能是在重新发明轮子。
And*_*ely 12
嗯,你可以
d = defaultdict(True.__bool__)
Run Code Online (Sandbox Code Playgroud)
但我个人会选择lambda: True.
我们可以使用partial作为替代lambda:
from functools import partial
from collections import defaultdict
d_true = defaultdict(partial(bool, True))
print(d_true['bona fide'])
Run Code Online (Sandbox Code Playgroud)
(这也是 Python 2 友好的。)