我正在尝试构建一个函数来检查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函数无法使用
答案 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