【问题标题】:Getting distinct values from Django non-database list of objects从 Django 非数据库对象列表中获取不同的值
【发布时间】:2014-06-01 16:20:37
【问题描述】:

如果我想从数据库中名为 SeasonsNavOrder 的 Django 模型中名为 season 的字段中获取不同值的列表,我可以使用以下语法:

seasonlist = SeasonsNavOrder.objects.values_list('season', flat=True).distinct()

但是如果我想从非数据库对象列表中获取不同的值怎么办?特别是,我有以下对象列表:

[<bridge.models.Season object at 0x10226e290>, <bridge.models.Season object at 0x10226e350>, <bridge.models.Season object at 0x10226ef50>, <bridge.models.Season object at 0x10226eed0>]

每个对象都有一个season 属性,我想将其提取到一个列表中,该列表与第一种情况下的列表具有相同的结构。

显然我可以编写一个 for 循环来循环遍历对象并将 season 属性附加到列表中,但这似乎效率低下。有没有更好的办法?

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以使用sets

    根据定义,集合是不同对象的集合。

    your_list = [<bridge.models.Season object at 0x10226e290>, <bridge.models.Season object at 0x10226e350>, <bridge.models.Season object at 0x10226ef50>, <bridge.models.Season object at 0x10226eed0>]
    your_set = Set(your_list)
    

    your_set 包含your_list 中包含的所有对象,但没有重复项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 2022-08-05
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多