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

问题描述 投票:3回答:1

根据帖子:Django comparing model instances for equality

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

代码是:

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使用“in relation_list”要么不起作用。

python django list duplicates instance
1个回答
2
投票

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

a = list()
for x in relation_list:
    if x.attrib1 not in [z.attrib1 for z in a]:
        a.append(x)
© www.soinside.com 2019 - 2024. All rights reserved.