Wie eine Liste von einem Elemente n bis zum Ende in Python schneiden?
Frage
Ich bin einige Probleme, herauszufinden, wie Python-Listen zu schneiden, ist dargestellt, wie folgt:
>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Zu meinem Verständnis, Python Scheibe bedeutet lst [Start: Ende], einschließlich Start, ohne Ende. So wie würde ich gehen über die Suche nach dem „Rest“ eine Liste von einem Elemente n starten?
Vielen Dank für Ihre Hilfe!
Lösung
Sie können ein Ende der Scheibe offen lassen durch den Wert angegeben wird.
test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]
Andere Tipps
Wenn Sie eine Variable als Bereich Endpunkt verwenden, können Sie None
verwenden.
start = 4
end = None
test[start:end]
auslassen einfach das Ende.
test[n:]
Beim Verlassen des Endes aus noch funktioniert, wenn Sie einige überspringen wollen:
range(10)[3::2] => [3, 5, 7, 9]
Gibt eine Scheibe der Liste nach einem Startwert:
list = ['a','b','c','d']
start_from = 'b' # value you want to start with
slice = list[list.index(start_from):] # returns slice from starting value to end
Sie können auch die None
Schlüsselwort für das Ende Parameter beim Schneiden. Dies würde auch die Elemente bis zum Ende der Liste zurückzukehren (oder eine beliebige sequence wie Tupel, String, etc.)
# for list
In [20]: list_ = list(range(10))
In [21]: list_[3:None]
Out[21]: [3, 4, 5, 6, 7, 8, 9]
# for string
In [22]: string = 'mario'
In [23]: string[2:None]
Out[23]: 'rio'
# for tuple
In [24]: tuple_ = ('Rose', 'red', 'orange', 'pink', 23, [23, 'number'], 12.0)
In [25]: tuple_[3:None]
Out[25]: ('pink', 23, [23, 'number'], 12.0)