如何以最有效的方式计算嵌套字典中的子元素数量? len() 函数没有像我最初预期的那样工作:
>>> food_colors = {'fruit': {'orange': 'orange', 'apple': 'red', 'banana': 'yellow'}, 'vegetables': {'lettuce': 'green', 'beet': 'red', 'pumpkin': 'orange'}}
>>> len(food_colors)
2
>>>
如果我真的想计算子元素的数量怎么办? (例如,预期结果为“6”)有没有更好的方法来做到这一点,而不是循环遍历每个元素并对子元素的数量求和?在这个特定的应用程序中,我有大约 500 万个子元素要计数,并且每个时钟周期都计数。
最佳答案
是否保证每个顶级键都有一个字典作为其值,并且没有二级键有字典?如果是这样,这将尽可能快地进行:
sum(len(v) for v in food_colors.itervalues())
如果数据结构更复杂,当然需要更多的代码。我不知道有任何内在函数可以进行深度数据结构遍历。
关于python - 如何计算嵌套字典中的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581646/