检查两个元组是否在相应位置具有共同元素

时间:2017-09-14 02:38:01

标签: python tuples comparison

这是我想要做的:

pair1 = (1,2)
pair2 = (3,3)
pair3 = (3,2)

# Is there a way that I can compare any of these two objects and yields the following:
 def myComp(...):
 #...

myComp(pair1,pair2) gives False 
myComp(pair1,pair3) gives True     #They both have 2 at index 1
myComp(pair1,pair3) gives True     #They both have 3 at index 0

任何想法或建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

与使用if语句条件进行硬编码相比,内置函数更容易实现。您可以使用zipany

def myComp(pair1, pair2):
    return any(x == y for x, y in zip(pair1, pair2))
>>> myComp(pair1, pair2)
False
>>> myComp(pair2, pair3)
True
>>> myComp(pair1, pair3)
True

会发生什么,使用zip将两个列表压缩在一起,创建一个元组生成器。这是在生成器理解中解压缩的。然后,any会测试是否有任何比较x == yTrue。如果是,则结果为True并返回。否则,返回False

这种方法适用于任意大小的列表,只要它们相同。

答案 1 :(得分:-1)

你的myComp函数只需要一个if进行比较,就像是:

def myComp(pair1,pair2)
   if (pair1[0]==pair2[0] || pair1[1]==pair2[1])
       return true;
return false;