查找2D字典大小的有效方法是什么?我目前正在使用这个oneliner:
sum((len(v) for v in d.itervalues()))
有更好的方法吗?
答案 0 :(得分:0)
如果你假设2D字典是一个标准的python字典,那里的值又是python字典,没有比迭代这些值更有效的方法。
但是,如果2D字典被定义为实现了几个特殊命名方法的类Dict2D
的某个实例,并且其值不是“正常”dicts
,而是一些{{1}像智能足以更新其父dict
的'大小'的类,那么你就能做到:
Dict2D
实现这样的d2d = Dict2D()
# various assignments and updates ..
d2d['abc']['def'] = 1
d2d['ghi'] = {x = 4, y = 3}
d2d['abc'] = dict(klm=8, answer=42)
....
print d2d.size()
是否有意义取决于你想要的透明程度,以及你需要在更改之间经常计算大小。