首页 文章

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

提问于
浏览
0

我正在尝试构建一个函数来检查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 回答

  • 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
    

    Suggestion:

    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
    

相关问题