设置https://docs.python.org/2/library/sets.html#sets.Set
我有10000个类对象的列表(django模型)。虽然它们都是唯一的但我想根据类属性缩小这个列表。
class mymodel():
field1 =
field2 =
我得到的对象在field2的基础上有所不同。 但我想在field1的基础上收缩。 field1对于少数对象是常见的 例如,当前列表有10000个对象。如果我通过field1缩小它,它将包含大约3000个唯一对象。
我不认为set为此提供了便利?任何其他功能或方法?
答案 0 :(得分:1)
django的“列表”是对象的查询集吗?如果是这样的话,那么更快,更少内存的方法就是运行distinct查询
objects.order_by('field1').distinct('field1')
答案 1 :(得分:0)
result = []
seen = set()
for obj in objects:
if obj.field1 not in seen:
seen.add(obj.field1)
result.append(obj)
答案 2 :(得分:0)
我使用字典理解采用了不同的方法。
unique_objs = {obj.field1:obj for obj in objects}.values()