python - 如何计算嵌套字典中的所有元素?

标签 python

如何以最有效的方式计算嵌套字典中的子元素数量? 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/

相关文章:

python - tkinter - 如何为文本设置字体?

python - 在 IOLoop.current().run_in_executor 中运行函数?

python - 在 C/C++ 和 Python 之间共享内存

python - PyPy C/API 访问

Python:尝试...除了异常名称的通配符?

python - 它在哪里被视为一个整数?

python - 根据时间戳进行 MapReduce

python - 为什么 plotly express 比 plotly graph_objects 更高效?

python - 递归拆分函数

python - 导入错误 : No module named mpl_toolkits