我正在尝试将列表字典拆分成字典列表。
我尝试遵循示例here和here_2。 Here_2是针对python 2.x的,似乎不适用于python 3.x
这里的第一个链接示例几乎可以正常工作,除了我只将第一个字典键值对重新返回为1个列表。
使用zip()将列表的字典转换为词典列表
test_dict = { "Rash" : [1], "Manjeet" : [1], "Akash" : [3, 4] }
res = [dict(zip(test_dict, i)) for i in zip(*test_dict.values())]
print ("The converted list of dictionaries " + str(res))
Out: The converted list of dictionaries [{‘Rash’: 1, ‘Akash’: 3, ‘Manjeet’: 1}]
DESIRED Out: The converted list of dictionaries [{‘Rash’: 1, ‘Akash’: 3, ‘Manjeet’: 1}, {‘Akash’: 4}]
答案 0 :(得分:1)
这是一个缓慢而又脆弱的解决方案,没有铃声或口哨声(通常命名不正确):
def dictlist_to_listdict(dictlist):
output = []
for k, v in dictlist.items():
for i, sv in enumerate(v):
if i >= len(output):
output.append({k: sv})
else:
output[i].update({k: sv})
return output
if __name__ == "__main__":
test_dict = {"Rash": [1], "Manjeet": [1], "Akash": [3, 4]}
print(dictlist_to_listdict(test_dict))
答案 1 :(得分:0)
当我使用Python 3在笔记本上运行您的代码时,它确实将您放置的行打印为所需的输出。 Perharps我对这个问题不太了解