python - 计算字典中键(和子键)数量的最佳方法
问题描述
我有一个 python dict(从 json 文件中读取),如下所示:
{ 'a' :
{ 'b' :
{ 'c': 3,
'd': 4}
}
}
识别密钥总数(包括子密钥)的最佳方法是什么?在上面的例子中,期望的答案是 4 ( 'a','b','c','d'
)。有没有办法做到这一点,而不仅仅是创建一个for
循环并迭代?
解决方案
您可以使用递归:
def key_num(d):
return sum(not isinstance(b, dict) or 1 + key_num(b) for b in d.values())
data = {'a': {'b': {'c': 3, 'd': 4}}}
print(key_num(data))
输出:
4
推荐阅读
- c# - 如何将这种类型的 Json 反序列化为 C# 对象
- uwp - Win2d中CanvasBitmap和CanvasVirtualBitmap有什么区别?
- c# - 实体类型 CST_Parameter 不是当前上下文模型的一部分
- ibm-cloud - IBM api connect 是否支持 POST multipart/form-data 请求?
- html - 我的导航栏列表元素正在移动到下一行,如何定位它们以适合单行?
- entity-framework - 实体框架核心,无法在 PrimaryKey 上设置 HasName
- java - 为什么将变量分配给自身会提示 Intellij 想法的更正
- android - 使用 postgresql 在 android studio (kotlin) 中插入记录
- navigation - 无法从导航栏 Swift UI 导航到第二个视图
- firebase - firestore - request.path 在模拟器中未定义