【发布时间】:2019-10-31 19:44:08
【问题描述】:
我经常使用collections.defaultdict 来将一个元素附加到d[key],而不必先将其初始化为[](好处:你不需要这样做:if key not in d: d[key] = []):
import collections, random
d = collections.defaultdict(list)
for i in range(100):
j = random.randint(0,20)
d[j].append(i) # if d[j] does not exist yet, initialize it to [], so we can use append directly
现在我意识到我们可以简单地使用普通的dict 和setdefault:
import random
d = {}
for i in range(100):
j = random.randint(0,20)
d.setdefault(j, []).append(i)
问题:当使用值为列表的dict 时,是否有充分的理由使用collections.defaultdict 而不是第二种方法(使用简单的dict 和setdefault),或者是它们完全等价吗?
【问题讨论】:
-
请@downvoter,您能否添加有关如何改进问题的说明(格式?措辞?等)提前谢谢您。
标签: python dictionary defaultdict