我有一份字典清单:
[
{
'Tahsin': [
{'January': 1}
]
},
{
'Arabic Language': [
{'September': 1}
]
},
{
'Arabic Language': [
{'August': 2}
]
},
{
'Arabic Language': [
{'August': 2}
]
}
]
我想合并相同键下的值并删除重复项。
我试过了
following code
:
list_of_unique_dicts = []
for dict_ in student_per_course:
if dict_ not in list_of_unique_dicts:
list_of_unique_dicts.append(dict_)
结果是:
[
{
'Tahsin': [
{'January': 1}
]
},
{'Arabic Language': [
{'September': 1}
]
},
{
'Arabic Language': [
{'August': 2}
]
}
]
不是完美的结果,该月的值仍有重复项。
然后,我尝试了这个
following code
:
bar = {
k: [d.get(k) for d in list_of_unique_dicts]
for k in set().union(*list_of_unique_dicts)
}
得到了这个结果:
{
'Tahsin': [
[
{'January': 1}
],
None, None
],
'Arabic Language': [
None,
[
{'September': 1}
],
[
{'August': 2}
]
]
}
仍然不是完美的结果。
我还试着用熊猫和老鼠
following code
:
res = pd.DataFrame(list_of_unique_dicts).to_dict(orient='list')
得到了这个结果:
{
'Tahsin': [
[
{'January': 1}
],
nan, nan
],
'Arabic Language': [
nan,
[
{'September': 1}
],
[
{'August': 2}
]
]
}
以上结果仍然不是我想要的。
预期结果应该是:
[
{
'Tahsin': [
{'January': 1}
]
},
{
'Arabic Language':
[
{'September': 1,
'August': 2
}
]
},
]
合并第一个结果中的值。
那么,如何做到这一点呢。。?,任何帮助都将不胜感激:)