【发布时间】:2021-09-12 20:44:25
【问题描述】:
我想使用 defaultdict 来初始化字典。
d = collections.defaultdict(set)
for i in range(3):
d[i].add(True)
这将产生一个字典,其中每个键都有 1..3 和 {True} 的值。
稍后我想像这样遍历这个集合的值:
for b in d[10]:
print(b)
在标准字典中,这会抛出,因为10 不是字典的键。在默认字典中,这将使用空集初始化 10 而不会抛出。
有没有办法在不将所有键复制到新字典的情况下“锁定”默认字典的键? d = dict(d) 是 O(1) 操作吗?
【问题讨论】:
-
这能回答你的问题吗? How to convert defaultdict to dict?
-
defaultdict是dict的子类,而不是普通dict的包装器。如果后者是真的,您可以简单地提取对包装的dict的引用并丢弃defaultdict。
标签: python