nested_dict = { b: { a: some_other_source_dict[b][a] or {} for a in a_list } for b in b_list }
如果存在some_other_source_dict[b][a]
,则正确的输出应为:
nested_dict = { b_key_1: { a_key_1: a_val_1, a_key_2: a_val_2 },
b_key_2: { a_key_1: a_val_3, a_key_2: a_val_4 } }
如果它不存在,则输出应为:
nested_dict = { b_key_1: { a_key_1: {}, a_key_2: {} },
b_key_2: { a_key_1: {}, a_key_2: {} } }
答案 0 :(得分:1)
some_other_source_dict[b][a]
如果不存在,则不返回假值,只是错误。你需要像{ a: some_other_source_dict[b][a] for a in a_list } if "some_other_source_dict" in globals() else {}
这样的东西。优选地,您应该有一些方法来确定是否定义它而无需检查globals()
。