In have a data set in the following format:
dataset = {
"one" : { "a" : [ 0, 1, 2 ], "b" : [ 0,10,20 ] },
"two" : { "a" : [ 0, 1 ], "b" : [ 0 ] }
}
我正在寻找一种快速的方法来计算所有“a”列表(以及“b”列表)的长度之和。
因此,对于上面的数据集,我希望总和为5(因为“one”[a]有3个成员,“two”[a]有2个成员,3+2通常是5)。
我认为像下面这样的代码可以完成任务,但我得到了意外的结果(错误的数字):
print sum( len(e) for d in dataset for e in dataset[d]["a"] )
我原以为这会依次获取“one”和“two”,对于每个字符串,它都会查找“a”的长度。然后计算所有找到的长度的总和。但实际上它并没有做到这一点,我应该使用什么方法呢?