以前、私は多くの素晴らしいプログラマーに機能を実行するのを手伝ってもらいました。ただし、インストラクターはそれを1つのループで望んでおり、すべての実用的なソリューションは複数のループを使用していました。
私は問題をほぼ解決する別のプログラムを書きました。ループを使用してすべての値を比較する代わりに、関数has_keyを使用して、その特定のキーが存在するかどうかを確認する必要があります。その答えは、一致する値を見つけるために辞書を繰り返す必要をなくします。なぜなら、uはそれらが一致するかどうかを知ることができるからです。繰り返しになりますが、charCountは、それ自体の定数をディクショナリに入力し、ディクショナリを返す関数です。
def sumPair(theList, n):
for a, b in level5.charCount(theList).iteritems():
x = n - a
if level5.charCount(theList).get(a):
if a == x:
if b > 1: #this checks that the frequency of the number is greater then one so the program wouldn't try to multiply a single possibility by itself and use it (example is 6+6=12. there could be a single 6 but it will return 6+6
return a, x
else:
if level5.charCount(theList).get(a) != x:
return a, x
print sumPair([6,3,8,3,2,8,3,2], 9)
現在の要素が要素のリストに存在するかどうかを確認することにより、このコードに反復なしで合計を検出させる必要があります。