在python中查找不规则列表中的元素

时间:2016-12-16 17:39:00

标签: list python-3.x recursion

我有以下课程

class A:
    def __init__(self, elements):
        self.elements = elements

我需要编写一个函数,它接受它的两个实例,并查找实例1是否在实例2的元素中。这是一个不规则列表,因为这些元素包含更多A到任意深度的实例。

我想要这些内容:

def is_element_in(instanceA1, instanceA2):

    found = False

    for inherit in instanceA2.instanceof.inherits:
        if instanceA1 == inherit:
            found = True
        else:
            n_inherit(instanceA1, inherit)

    return found

写这个的最好方法是什么?我读了一些关于扁平化列表的答案。我不知道这里是否是最好的主意,因为我必须访问字段才能获得我的元素列表。可以在这里使用的任何python库吗?

1 个答案:

答案 0 :(得分:2)

可能的解决方案是

def is_element_in(items, element):
    for item in items:
        if item == element:
            return True

        if isinstance(item, list) and is_element_in(item, element):
            return True

    return False

items = [[1, 2], [3], [[4], 5]]

print(is_element_in(items, 4))
print(is_element_in(items, 0))

打印

True
False