关于python:从模型实例列表中删除重复项

remove duplicates from the list of a model instances

基于post:django比较模型实例是否相等

我正在尝试从实例列表中删除重复项(这些重复项尚未保存,我假定它们的"ID"为"无")。

代码是:

1
2
3
4
5
6
7
8
9
10
a = list()
a.append(relation_list.pop())
for x in relation_list:
    duplicate = False
    for z in a:
        if z is x:
        #or if z.attrib1 == x.attrib1 and z.attrib2 == x.attrib2:
            duplicate = True
    if not duplicate:
        a.append(x)

但是,如果attribs相等,则行duplicate=true永远不会执行。

我错过了什么?

有没有更有效的方法来实现这一点?(从这篇文章中得到启发,使用"关系列表"也不起作用。


试试这个,让我知道结果:

1
2
3
4
a = list()
for x in relation_list:
    if x.attrib1 not in [z.attrib1 for z in a]:
        a.append(x)