【发布时间】:2019-08-20 13:39:54
【问题描述】:
我有一个校区列表:
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 项目不可散列,所以我不能这样做。 可用的解决方案与我的问题有些相似。 Remove duplicates from list of dictionaries within list of dictionaries Remove duplicate dict in list in 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'}]
【问题讨论】:
-
你能发布你的预期输出吗?有点难以理解你想要什么?
标签: python list dictionary duplicates hashable