从模型实例列表中删除重复项

时间:2017-12-24 10:28:51

标签: python django list duplicates instance

基于帖子:Django comparing model instances for equality

我正在尝试从我的实例列表中删除重复项(尚未保存,我认为他们的' id'为无)

代码是:

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永远不会被执行。

我错过了什么?

有没有更有效的方法来实现这一目标? (灵感来自this post使用"在relation_list"要么不起作用。

1 个答案:

答案 0 :(得分:2)

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

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