[英]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.