查找列表中的数字对,最多可添加10个

时间:2011-12-05 05:34:06

标签: python

给出一个数字列表,我想找到所有数字对,加起来为10。

如何在Python中编写一个函数来执行此操作?

2 个答案:

答案 0 :(得分:5)

只需将10中的差异存储在一个集合中:

def find(arr, total):
    d = set()
    for e in arr:
        if e in d:
            print total-e, e
            break
        d.add(total-e)

s = [1,5,3,10,11,7,2]
find(s, 10)

答案 1 :(得分:3)

l = [1, 3, 4, 5, 6, 7, 8, 9]
[(x,y) for x in l for y in l if x+y==10]