Im Grunde versuche ich 2 Elemente in einer Liste zu finden, die sich zu der richtigen gegebenen Summe addiert.Wie man Listen durchläuft und Summen zwischen zwei Zahlen vergleicht und schließlich die Antwort mit der nächsten Indexgruppierung zurückgibt?
Beispiel:
aList = [1,5,6,3,8,9,4] sum = 10
jetzt mit den oben genannten Bedingungen werde ich 2 Ergebnisse erwarten:
[1, 9] and [6, 4]
Die Antwort sollte [6, 4], weil sie sich am nächsten sind. 1 bis 9 müssen 4 Schritte ausführen, während [6, 4] nur 3 Schritte benötigen. Kürzeste Indexunterschiede.
Mein Code ist unten und es für das obige Beispiel funktioniert nicht:
def sum_pairs(ints, s):
for i in ints:
for b in ints[i:]:
if i + b == s:
return [i,b]
else:
return None
Wie würden Sie zwischen am nächsten Index überprüfen Sie mit aus einem weiteren Schleife zu schreiben?
Haben Sie eine Fehlermeldung erhalten? – lkdhruw
Wenn ich mich nicht irre, ist das Problem nicht, dass der Code "nicht funktioniert" in dem Sinne, dass es bei der Ausführung versagt; das Problem ist, dass es das erste "funktionierende" Paar zurückgibt, nicht das, was am nächsten ist ... – Archeo
@Archeo ja Sie sind richtig, es funktioniert, aber gibt nicht das nächste Indexpaar zurück. Danke für das Aufklären. –