У меня есть список словарей:
[
{
'Tahsin': [
{'January': 1}
]
},
{
'Arabic Language': [
{'September': 1}
]
},
{
'Arabic Language': [
{'August': 2}
]
},
{
'Arabic Language': [
{'August': 2}
]
}
]
Я хочу объединить значения с одинаковыми ключами и удалить дубликаты.
Я пробовал следующий код :
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}
]
}
]
не идеальный результат, значения месяца все еще имеют дубликаты.
Затем я попробовал это следующий код :
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}
]
]
}
Все еще не идеальный результат ^ _ ^.
Я также пытался использоватьПанды с следующий код :
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
}
]
},
]
, где объединяются значения из первого результата.
Итак, как это сделать ..?, Любая помощь будет оценена:)