我有一个字典,其中每个键都有一个项目列表(矢量):
from collections import defaultdict
dict = defaultdict(list)
dict[133] = [2,4,64,312]
dict[4] = [2,3,5,12,45,32]
dict[54] = [12,2,443,223]
def getTotalVectorItems(items):
total = 0
for v in items.values():
total += len(v)
return total
print getTotalVectorItems(dict)
这将打印:
14 # number of items in the 3 dict keys.
除了创建这个“getTotalVectorItems”函数之外,还有更简单的pythonic方法吗?我觉得有一种快速的方法可以做到这一点。
答案 0 :(得分:7)
您正在寻找the sum()
built-in的generator expression:
sum(len(v) for v in items.values())
sum()
函数总计给定迭代器的值,生成器表达式生成列表中每个值的长度。
请注意,调用列表向量可能会让大多数Python程序员感到困惑,除非您在问题域的上下文中使用术语向量。
答案 1 :(得分:1)
print sum(map(len,dic.itervalues()))