handeln Ich habe mein Problem zu etwas sehr einfach abstrahiert. Ich würde gerne die [:-0]
mir geben [:]
aber kann nicht sehen, wie es geht, ohne einen speziellen Fall zu verwenden.sequentiell kürzere Liste von rechts über Indexierung - müssen [: -0] wie [:]
Ich versuche, das Verhalten zu bekommen unten angegeben:
Die ersten Fälle nur der Vollständigkeit halber sind.
a = range(6)
print "a[i:] for i in range(3)"
for i in range(3):
print a[i:]
print "a[:i] for i in range(3)"
for i in range(3):
print a[:i]
print "a[-i:] for i in range(3)"
for i in range(3):
print a[-i:]
print "a[:i] for i in [None, -1, -2] DESIRED RESULT"
for i in [None, -1, -2]:
print a[:i]
print "a[:-i] for i in range(3) BUT CAN'T GET IT HERE"
for i in range(3):
print a[:-i]
print "a[:i] for i in [0, -1, -2] OR HERE EITHER"
for i in [0, -1, -2]:
print a[:i]
Sie können es in 2.7 laufen oder unten auf die Ergebnisse beziehen sich nur:
a[i:] for i in range(3)
[0, 1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[2, 3, 4, 5]
a[:i] for i in range(3)
[]
[0]
[0, 1]
a[-i:] for i in range(3)
[0, 1, 2, 3, 4, 5]
[5]
[4, 5]
a[:i] for i in [None, -1, -2] DESIRED RESULT
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4]
[0, 1, 2, 3]
a[:-i] for i in range(3) BUT CAN'T GET IT HERE
[]
[0, 1, 2, 3, 4]
[0, 1, 2, 3]
a[:i] for i in [0, -1, -2] OR HERE EITHER
[]
[0, 1, 2, 3, 4]
[0, 1, 2, 3]
WOW! Das ist großartig! Ist das relativ neu? (Blick auf [PEP-505] (https://www.python.org/dev/peps/pep-0505/#abstract)) – uhoh
Nr. 'und' und' oder' haben zusammenwachsendes Verhalten seit ... 1.5 , mindestens. Alle in PEP 505 beschriebenen Operatoren beziehen sich spezifisch auf "None" und nicht auf die Wahrheit der Operanden. –
@ IgnacioVazquez-Abrams können Sie bitte erklären, was hier passiert? Wenn man die zusammenwachsenden Operatoren liest, schlägt dies vor, dass die bool-Prüfungen fortgesetzt werden, bis etwas gefunden wird, das wahr ist - ein "Standardwert". Aber 'bool (None) = False ', also ist es hier tatsächlich so, dass es _omes_ aus den Optionen zurückgeben muss, also die letzte Option unabhängig von der Wahrheit zurückgibt, wenn alle vorhergehenden Optionen False sind? – roganjosh