Python如何统计嵌套结构字典中所有服务器键的总数量
统计所有服务器键总数的解决方案
问题原因
你调用len(dict.keys())得到结果3,是因为你仅统计了外层容器的元素数量,没有遍历累加每个内层字典的键数。
实现代码
场景1:子字典存储在列表中
如果你的数据结构如下:
server_list = [ {'server-xx': '2'}, {'server-xy1': '0', 'server-xy2': '1'}, {'server-xz1': '0', 'server-xz2': '0'} ]
统计代码:
total_count = sum(len(sub_dict) for sub_dict in server_list) print(total_count) # 输出:5
场景2:结构为嵌套字典
如果外层是一个大字典,每个值对应一个子字典,结构如下:
server_dict = { 'group1': {'server-xx': '2'}, 'group2': {'server-xy1': '0', 'server-xy2': '1'}, 'group3': {'server-xz1': '0', 'server-xz2': '0'} }
统计代码:
total_count = sum(len(sub_dict) for sub_dict in server_dict.values()) print(total_count) # 输出:5
如果存在更深层的嵌套字典,可以使用递归实现统计:
def count_all_keys(data): count = 0 if isinstance(data, dict): count += len(data) for v in data.values(): count += count_all_keys(v) elif isinstance(data, list): for item in data: count += count_all_keys(item) return count total_count = count_all_keys(你的数据变量)
内容的提问来源于stack exchange,提问作者Flo Flo
相关产品推荐
相关产品推荐

