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!

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top