回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一份校园名单:</p>
<pre><code>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'}, ]
</code></pre>
<p>每一个校园都属于一所拥有独特的dlin的学校。我想要一个列表,其中有一些其他的列表,每个列表都有一些字典。
我运行以下代码:</p>
<pre><code>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]
</code></pre>
<p>结果是:</p>
<pre><code>[{'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'}]
</code></pre>
<p>我要么从学校删除重复的成员,要么修改代码,这样我就不会得到重复的。
当我尝试从学校删除重复项时,我发现dic项是不可散列的,所以我不能这样做。
有一些与我的问题相似的解决方案。
<a href="https://stackoverflow.com/questions/38593527/remove-duplicates-from-list-of-dictionaries-within-list-of-dictionaries">Remove duplicates from list of dictionaries within list of dictionaries</a>
<a href="https://stackoverflow.com/questions/9427163/remove-duplicate-dict-in-list-in-python">Remove duplicate dict in list in Python</a>
但是,我不知道该怎么办?
有人知道怎么解决这个问题吗?你知道吗</p>
<p>我希望得到的是:</p>
<pre><code>[{'id': '1', 'dlin': '1'}, {'id': '2', 'dlin': '1'}, {'id': '3', 'dlin': '1'}, {'id': '6', 'dlin': '1'}]
[{'id': '4', 'dlin': '2'}, {'id': '5', 'dlin': '2'}]
</code></pre>