如何获取python字典中与不同列表中的值对应的所有内部级别嵌套键的列表?

r9f1avp5  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(302)

假设我有一个类似于 my_list = ['level_1b'] . 我的字典类似于:

my_dict= {
 'DICT':{
  'level_1a':{
   'level_2a':{}
  },
  'level_1b': {
   'level_2b':{},
   'level_2c':{}
  }
}

我拥有的当前代码提取了此字典中的所有内部级别嵌套键: [key for level in my_dict["DICT"].values() for key in level] 输出为 ['level_2a', 'level_2b', 'level_2c'] .
我将如何过滤此列表,使其仅提取与我包含的级别1值相对应的级别2值 my_list ? 我在想另一件事 for 循环,但我不知道该如何执行。
我也试过: [list(my_dict['DICT'][level]) for level in levels] 但输出并不完全正确。
鉴于 my_listmy_dict ,我对该最小可再现示例的理想输出应为: ['level_2b', 'level_2c'] .
当然,代码的功能是包含1个以上的项目 my_list 也先谢谢你。

6vl6ewon

6vl6ewon1#

试试看:

[(nested_key) for key, value in my_dict["DICT"].items() for nested_key in value.keys() if key in my_list]

输出:

['level_2b', 'level_2c']
oymdgrw7

oymdgrw72#

这应该行得通。只是不再是列表理解,因此更容易思考。

level2_keys = []
for level1_key in my_list:
    level2_keys.extend(my_dict["DICT"][level1_key].keys())

相关问题