如何高效删除Python嵌套字典的最底层并将该层键转为列表存储?
实现方法
对于你给出的固定两层嵌套结构的字典,用嵌套字典推导式就能快速实现,写法比手动循环简洁,运行效率和手动循环完全一致,没有额外性能开销:
new_dict = { group_key: { type_key: list(inner_val.keys()) for type_key, inner_val in group_val.items() } for group_key, group_val in my_dict.items() }
如果你后续可能遇到嵌套层数不固定的场景,可以用递归函数实现通用适配,不管嵌套多少层,只要最内层是仅存数值的字典,都能自动提取最内层的键为列表:
def extract_inner_keys(input_dict: dict) -> dict | list: # 判断当前层级是否已经是最内层(所有值都不是字典) if all(not isinstance(val, dict) for val in input_dict.values()): return list(input_dict.keys()) # 非最内层则继续递归处理 return {key: extract_inner_keys(val) for key, val in input_dict.items()} new_dict = extract_inner_keys(my_dict)
内容的提问来源于stack exchange,提问作者Camilo
相关产品推荐
相关产品推荐

