簡體   English   中英

從兩個不同的列表中找出加起來等於特定數字的對數?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM