如何提取Python字典前两层结构并移除二级值?
实现方法
可以通过两种常见方式实现需求:
1. 字典推导式生成新字典(推荐,不修改原数据)
这种方式会创建一个新字典,保留原字典的结构,同时将二级字典替换为其键组成的集合:
original_dict = { "a": {'aa': 1}, "b": {'ba': 2, 'bb': 3, 'bc': -1}, "c": {'ca': 0, 'cb': 3, 'cc': 2} } new_dict = {k: set(v.keys()) for k, v in original_dict.items()} print(new_dict)
运行后输出结果:
{'a': {'aa'}, 'b': {'ba', 'bb', 'bc'}, 'c': {'ca', 'cb', 'cc'}}
2. 直接修改原字典
如果不需要保留原字典数据,可以直接遍历原字典并修改其二级值:
original_dict = { "a": {'aa': 1}, "b": {'ba': 2, 'bb': 3, 'bc': -1}, "c": {'ca': 0, 'cb': 3, 'cc': 2} } for key in original_dict: original_dict[key] = set(original_dict[key].keys()) print(original_dict)
两种方式的核心逻辑都是提取二级字典的keys()并转换为集合,集合的无序特性不影响内容的完整性,和你期望的结果一致。
内容的提问来源于stack exchange,提问作者kyara
相关产品推荐
相关产品推荐

