检查python中列表列表中是否存在列表

时间:2012-02-10 16:35:55

标签: python list instance

我需要检查列表列表中是否存在列表。我面临的问题是我的列表由类对象组成,因此我无法使用普通方法执行此操作 “如果列表在list_of_lists中”方法

我的代码的相关部分如下

for ind in feasible_pop_comp:
    for other in feasible_pop_comp:
        if ind.Type!= other.Type:
            comp=[ind,other]
            if comp not in self.candidate.list #does not work even with .any() or .all() included
                dombool=self.compare_typematch(ind, other)
                if (dombool==0):
                    replace=self.check_distance(ind.point,other.point)
                    if replace:
                        if(ind<other):
                            feasible_pop_comp.remove(other)
                        else:
                            feasible_pop_comp.remove(ind)
                else:
                    self.candidate_list.append(comp)

我的类已经内置了命令来检查与其他类对象的结构相似性(读取相等)

def __eq__(self, other): 
    return self.point == other.point# as all other parameters are derived from analysing the point, this equivalence is sufficient

回溯如下:

if comp not in self.candidate_list:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Failed !

当self.candidate_list为空时,它首次进入

正如你从我的unpythonic代码中注意到的那样,我对python来说相对较新。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试覆盖容器类的__contains__方法? 这样你就可以让in运算符起作用。

但毕竟,我不确定我是否理解你问题的所有部分......