从模型实例列表中删除重复项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从模型实例列表中删除重复项相关的知识,希望对你有一定的参考价值。
根据帖子: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”要么不起作用。
答案
试试这个,让我知道结果:
a = list()
for x in relation_list:
if x.attrib1 not in [z.attrib1 for z in a]:
a.append(x)
以上是关于从模型实例列表中删除重复项的主要内容,如果未能解决你的问题,请参考以下文章