2011-12-05 11 views
0

まで追加、リスト内の番号のペアを見つけ、私はこれで操作を行うための関数を書くことができますどのように10番号のリストを考えると10

まで追加番号のすべてのペアを見つけたいですPython?

+1

あなたが何を必要としないと言うのは難しいです。あなたは入力と出力のいくつかの例を挙げることができますか? – Tadeck

答えて

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) 
+0

約3分ですばらしい小さな例です。私が感銘を受けた。 :) – sarnold

+0

メンバーシップをテストするには 'dict'の代わりに' set'を使うべきです。 –

+0

これは 'O(n)'です。補完物を保管し、見つかったときにそれを見ることは素晴らしいアプローチです。 –

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

これは 'O(n^2)'ですが... –