繁体   English   中英

仅将唯一对象插入列表

[英]Insert only unique objects into list

我有一组人:

people = Person.objects.all()

我有一个列表un_people = [] -表示一个具有唯一名称的人的列表。

因此,可以有多个同名的人。 我想对此进行过滤,然后插入列表,以便列表仅包含具有唯一名称的人员对象。

我试过了:

for person in people: 
   if person.name in un_people:
      #... ? 

但在列表中,有对象而不是名称。 如何检查具有相同名称的对象,然后插入列表?

您可以使用set数据结构:

un_people = set(people)

如果您的元素不可散列,JonClemens建议您首先建立一个名称列表:

un_people = set([p.name for p in people])

使用dict来做唯一性,然后取值,例如:

uniq_names = {person.name:person for person in people}
uniq_people = uniq_names.values() # use list(unique_names.values()) for Py 3.x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM