Bitte lassen Sie mich wissen, wie diese for-Schleife funktioniert.Wie funktioniert diese for-Schleife?
b= [4,5,6]
for b[-1] in b:
print(b[-1])
Dieser Code-Schnipsel gibt mir Ausgabe als: -
4
5
5
überprüfte ich es mit Python 2.7
Bitte lassen Sie mich wissen, wie diese for-Schleife funktioniert.Wie funktioniert diese for-Schleife?
b= [4,5,6]
for b[-1] in b:
print(b[-1])
Dieser Code-Schnipsel gibt mir Ausgabe als: -
4
5
5
überprüfte ich es mit Python 2.7
Sie es verstehen können, während der Druck ganz b
Liste:
b= [4,5,6]
for b[-1] in b:
print(b)
print(b[-1])
Ausgabe
[4, 5, 4] # first iteration, you set last element(6) with first element(4) [4,5,6] -> [4,5,4]
4
[4, 5, 5] # second iteration, you set last element(4) with element(5), [4,5,4] -> [4,5,5]
5
[4, 5, 5] # last iteration, you set last element(5) with element(5), no change
5
Also im Grunde jede Iteration wird Ihr letztes Element zum Element, mit dem Sie iterieren.
jede Iteration Element i von b gerichtet. Es wird b [-1] (letztes Element von b) zugeordnet und gedruckt. So wird jedem Schritt, dem letzten Element von b (6 vor der Schleife), der Wert des i-ten Elements zugeordnet.
Schließlich wird bei der letzten Iteration der i-te Wert gelesen und der gelesene Wert ist der Wert, der vor der Iteration geschrieben wurde (also 5).
den Code ändern b bei jedem Schritt zu drucken und es wird offensichtlich: (. Verwenden Sie diese Art von Dingen, im wirklichen Leben nicht tun)
b = [4,5,6]
for b[-1] in b:
print(b[-1])
print(b)
Warum wird '5' in der letzten Iteration und nicht in 6 gedruckt? – Kevin
Sie können Ihren Code bei pythonutor.com ausführen, um eine wirklich gute Visualisierung zu erhalten. –
Wo haben Sie diesen Code gefunden? Das Verwenden von kniffligen Ausdrücken wie 'b [-1]' in einem For-Loop-Header ist kein typischer Produktionsqualitätsstil, also vermute ich, dass dies ursprünglich als ein "rate dieses Code-Verhalten" -Rätsel gedacht war. Vielleicht bietet das Teilen der Quelle mit uns einen zusätzlichen nützlichen Kontext. – Kevin
Ja, es war eine Rätselfrage – rjha