【发布时间】:2019-05-04 04:34:41
【问题描述】:
我有以下字典:
my_dict = {"A":0, "B":[1,2], "C":3}
我试图将其拆分为包含每个可能值的 2 个字典的列表。例如:
#Desired result
[{"A":0, "B":1, "C":3}, {"A":0, "B":2, "C":3}]
我能够得到每个需要的字典的列表,希望我可以循环遍历列表并使用update() 合并字典。这将覆盖键 "B" 并且只创建一个字典。
这是我所做的:
dict_list = []
my_dict = {"A":0, "B":[1,2], "C":3}
for k, v in my_dict.items():
if type(v) == list:
for i in v:
dict1 = {k:i}
dict_list.append(dict1)
if type(v) != list:
dict2 = {k:v}
dict_list.append(dict2)
new_dict = {}
for d in dict_list:
new_dict.update(d)
print(new_dict)
输出:
{'A':0, 'B':2, 'C':3}
这将覆盖键 'B' 并仅根据最后一个值创建一个字典。
【问题讨论】:
-
你需要创建一个
defaultdict(list)
标签: python list dictionary