检查python中的另一个元组列表中是否至少有一个元组

时间:2017-01-04 20:54:43

标签: tuples

我正在尝试构建一个函数来检查2个元组列表,如果至少有一个元组在另一个列表中,则返回True:

def g32(x, y):

    for i in range(len(x)):
        for j in range(len(y)):
            if x[i] in y[j]:
                return True
    return False

g32( [(3,5),(2,8)] , [(6,5),(3,5),(7,2)])
False

预期真实,因为(3,5)在两个列表中,想法?感谢

p.s想使用这样的简单语法,因为它适用于学校,并且某些内置的python函数无法使用

1 个答案:

答案 0 :(得分:1)

如果在元组中使用in运算符,它将返回此元素。在您的情况下,您将进行比较:if (3, 5) in 3:if (3, 5) in 5:,在每种情况下都返回False

必须使用:

def g32(x, y):
    for i in range(len(x)):
        if x[i] in y:
            return True
    return False

print(g32( [(3,5),(2,8)] , [(6,5),(3,5),(7,2)]))

输出:

True

<强>建议:

def g32(x, y):
    for X in x:
        if X in y:
            return True
    return False

如果订单有变化:

def g32(x, y):
    for X in x:
        if X in y:
            return True
        if (X[1], X[0]) in y:
            return True

    return False

print(g32( [(3,5),(2,7),(4,4),(8,3)] , [(6,5),(3,3),(7,2)] ))

输出:

True