从Django非数据库对象列表中获取不同的值

时间:2014-06-01 16:20:37

标签: python django

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

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属性附加到列表中,但这似乎效率低下。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用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中包含但没有重复项的所有对象。