[英]Find number of pairs that add up to a specific number from two different lists?
a = [1,2,3,4,5,6,7]
b = [56,59,62,65,67,69]
def sumOfTwo(a,b,v):
for i in range (len(a)):
val_needed = v - a[i]
for j in range (len(b)):
if b[j] == val_needed:
x = b[j]
y = a[i]
print(x,y)
sumOfTwo(a,b,v=70)
输出:5 65
如果问题中的给定列表中可能有更多对,我该怎么做? 帮助。 还有哪些方法可以实现这一目标?
如果您只想打印匹配的值,您只需将打印语句缩进if
,如下所述。 此外,您应该对for
循环和变量赋值使用更Pythonic 的方法。
a = [1,2,3,4,5,6,7]
b = [56,59,62,65,67,69]
def sumOfTwo(a,b,v):
for i in a:
val_needed = v - i
for j in b:
if j == val_needed:
x, y = j, i
print(x,y)
sumOfTwo(a,b,v=70)
使用列表理解:
a = [1,2,3,4,5,6,7]
b = [56,59,62,65,67,69]
c = [(x, y)
for x in a
for y in b
if x + y == 70]
print(c)
这产生
[(1, 69), (3, 67), (5, 65)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.