如何合并具有键和值的字典列表



>我在下面有字典列表,并将所有词典合并为一个

r = [{'Name': 'Dr. Tajwar Aamir MD',
'Specialised and Location': 'Pediatrics, Princeton, NJ'},
{'Name': 'Dr. Bernard Aaron', 'Specialised and Location': 'Health'},
{'Name': 'Dr. Joseph Aaron MD',
'Specialised and Location': 'Internal Medicine, Short Hills, NJ'},
{'Name': 'Dr. Michael Aaron DO',
'Specialised and Location': 'Cardiology, Neptune, NJ'}]
result =  {"Name": [], "Specialised and Location": [] for i in r}
#result["Name"].append(Name)
#result["Specialised and Location"].append(Specialised and Location)

期望的输出

{"Name":['Dr. Tajwar Aamir MD','Dr. Bernard Aaron','Dr. Joseph Aaron MD','Dr. Michael Aaron DO'],
"Specialised and Location":['Pediatrics, Princeton, NJ','Health','Internal Medicine, Short Hills, NJ','Cardiology, Neptune, NJ']}

使用简单的 for 循环

前任:

r = [{'Name': 'Dr. Tajwar Aamir MD',
'Specialised and Location': 'Pediatrics, Princeton, NJ'},
{'Name': 'Dr. Bernard Aaron', 'Specialised and Location': 'Health'},
{'Name': 'Dr. Joseph Aaron MD',
'Specialised and Location': 'Internal Medicine, Short Hills, NJ'},
{'Name': 'Dr. Michael Aaron DO',
'Specialised and Location': 'Cardiology, Neptune, NJ'}]
result =  {"Name": [], "Specialised and Location": []}
for i in r:
result["Name"].append(i["Name"])
result["Specialised and Location"].append(i["Specialised and Location"])
print(result)

result =  {"Name": list(map(lambda d: d['Name'], r)), "Specialised and Location": list(map(lambda d: d['Specialised and Location'], r))}

输出:

{'Name': ['Dr. Tajwar Aamir MD',
'Dr. Bernard Aaron',
'Dr. Joseph Aaron MD',
'Dr. Michael Aaron DO'],
'Specialised and Location': ['Pediatrics, Princeton, NJ',
'Health',
'Internal Medicine, Short Hills, NJ',
'Cardiology, Neptune, NJ']}
r = [{'Name': 'Dr. Tajwar Aamir MD',
'Specialised and Location': 'Pediatrics, Princeton, NJ'},
{'Name': 'Dr. Bernard Aaron', 'Specialised and Location': 'Health'},
{'Name': 'Dr. Joseph Aaron MD',
'Specialised and Location': 'Internal Medicine, Short Hills, NJ'},
{'Name': 'Dr. Michael Aaron DO',
'Specialised and Location': 'Cardiology, Neptune, NJ'}]
result={'Name':[x['Name'] for x in r], 'Specialised and Location':[x['Specialised and Location'] for x in r]}
print(result)

输出

{'Name': ['Dr. Tajwar Aamir MD', 'Dr. Bernard Aaron', 'Dr. Joseph Aaron MD', 'Dr. Michael Aaron DO'], 'Specialised and Location': ['Pediatrics, Princeton, NJ', 'Health', 'Internal Medicine, Short Hills, NJ', 'Cardiology, Neptune, NJ']}

你可以试试:

from collections import defaultdict
my_dict = defaultdict(list)
for k, v in (item for e in r for item in e.items()):
my_dict[k].append(v)
print(dict(my_dict))
# output: 
# {'Name': ['Dr. Tajwar Aamir MD', 'Dr. Bernard Aaron', 'Dr. Joseph Aaron MD', 'Dr. Michael Aaron DO'], 'Specialised and Location': ['Pediatrics, Princeton, NJ', 'Health', 'Internal Medicine, Short Hills, NJ', 'Cardiology, Neptune, NJ']}

最新更新