У меня есть список кампусов:
campus = [{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'},{'id': '3', 'dlin': '1'},{'id': '4', 'dlin': '2'},{'id': '5', 'dlin': '2'},{'id': '6', 'dlin': '1'}, ]
каждый кампус принадлежит школе с уникальным dlin. Я хочу иметь список, в котором у меня есть другие списки, в каждом из которых есть несколько словарей. Я запускаю следующий код:
schools = []
for i in campus:
ls = []
for j in campus:
if i['dlin'] == j['dlin']:
ls.append(j)
# campus_copy.remove(j)
schools.append(ls)
[print(item) for item in schools]
результат:
[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
[{'id': '4', 'dlin': '2'}, {'id': '5', 'dlin': '2'}]
[{'id': '4', 'dlin': '2'}, {'id': '5', 'dlin': '2'}]
[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
Я должен либо удалить повторяющихся участников из школ, либо изменить код так, чтобы у меня не было дубликатов. Когда я пытаюсь удалить дубликаты из школ, я вижу, что элемент dic не хешируется, поэтому я не могу этого сделать. Доступны решения, которые чем-то похожи на мою проблему. Удалить дубликаты из списка словарей в списке словарей Удалить дубликат dict в списке в Python Однако я не могу понять вон что делать? кто-нибудь знает как решить проблему?
то, что я ожидаю получить, это:
[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
[{'id': '4', 'dlin': '2'}, {'id': '5', 'dlin': '2'}]
[]
docs.python.org/3/library/stdtypes.html#dict.setdefault 20.08.2019