Ich habe eine einfache, immer aufeinanderfolgende geordnete Liste wie folgt aus:Wie entferne ich einen Bereich (Unterabschnitt) einer Liste in Python?
all = [ 1, 2, 3, 4, 5, 6 ] # same as range(1, 7)
Ich habe auch current = 4
. Am Ende möchte ich die all
Liste wie diese So
altered = [ 1, 2, 5, 6 ]
schauen, was passiert ist, war es die current
Zahl und derjenige, bevor es3
entfernt.
current
kann auch 1
und 0
sein, also möchte ich sicherstellen, dass es keinen Fehler für diese beiden Werte wirft.
Für die Ausnahme current = 0
ist die geänderte Liste wie diese
altered = [ 1, 2, 3, 4, 5 ]
was bedeutet, dass current = 0
einfach die letzte Nummer entfernt.
Ich fühle mich wie Sie können wahrscheinlich etwas Phantasie mit Generatoren codieren, aber ich bin scheiße beim Schreiben sie.
Vielen Dank im Voraus!
Bonuspunkte dafür in einer Zeile. Wenn der current = 0
zu viel Mühe ist, dann könnte es auch current = -1
oder current = 7
sein.
EDIT: Stellen Sie sicher, für current = 1
zu überprüfen, die
altered = [ 2, 3, 4, 5, 6 ]
Wenn Strom == 4 die 4 aus der Liste entfernt ist, weil es den Wert 4 hat, oder weil es in der vierten Position ist (wenn man von einem Zählen)? Wird die 3 ebenfalls entfernt, weil es sich um die kleinste Zahl unter 4 handelt oder weil sie sich auf dem Index vor dem entfernten Objekt befindet? – thebjorn
Die Liste ist immer ein 'range()', also ist es egal, ob Sie es als Position oder Wert betrachten. – hobbes3
Nennen Sie Ihre Listen nicht "all", da es eine integrierte Funktion 'all()' gibt, die den Zugriff darauf löscht, sobald Sie den Namen verwendet haben. – jamylak