Python:如何获得嵌套元组搜索的单个输出?

时间:2017-09-13 17:21:05

标签: python nested tuples

v是变量,e是基于表达式的元组,具有可能的嵌套

输入的一个例子是:

print(isInside('x', (('m', '*', 'x'), '+', 'b')))

哪个应该返回True

但是使用我的代码,由于嵌套

,我得到了(True, False)的输出
def isInside(v, e):

   if len(e) == 0:
        return False
    elif e[0] == v:
        return True
    elif type(e[0]) == tuple:
        return isInside(v, e[0]), isInside(v, e[1:])
    else:
        return isInside(v, e[1:])

2 个答案:

答案 0 :(得分:4)

如果您不想要元组,为什么返回一个元组? 我认为你想要的是两者的逻辑 OR

def isInside(v, e):

    if len(e) == 0:
        return False
    elif e[0] == v:
        return True
    elif type(e[0]) == tuple:
        return isInside(v, e[0]) or  \
               isInside(v, e[1:])
    else:
        return isInside(v, e[1:])

print(isInside('x', (('m', '*', 'x'), '+', 'b')))

这会返回一个简单的 True

答案 1 :(得分:1)

不是真的;问题出在这一部分:

selectedProducts.includes('Apples')

尝试将其替换为:

isInside(v, e[0]), isInside(v, e[1:])