python - 仅将唯一对象插入列表

标签 python django

我有人的查询集:

people = Person.objects.all()

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

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

我试过:

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

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

最佳答案

使用dict做唯一性,然后取值,eg:

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

关于python - 仅将唯一对象插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585700/

相关文章:

python - 如何在 Google App Engine 中解析 JSON?

python - 在 pandas 列标题上方插入一行以将标题名称保存在 csv/excel 文件的第一个单元格中

python - 一种通过比较特定值从多维数组中删除重复项的方法

javascript - Django 模板存在 javascript 渲染问题

python - 配置 Nginx 和 Gunicorn 后未设置环境变量(Ubuntu 机器上的 Django 应用程序)

python - Django 2 url路径匹配负值

python - 在控制台中打印出摘要

python - 导入本地创建的模块

django - 如何在 Heroku 上完全重置 Postgres 数据库?

python - 在 View django中返回多个值