it-swarm.com.de

Wie schneide ich eine Liste von einem Element n bis zum Ende in Python?

Ich habe Schwierigkeiten, herauszufinden, wie man Python-Listen schneidet. Dies wird wie folgt veranschaulicht:

>>> 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]

Python-Slice bedeutet meines Erachtens lst [start: end] und Start einschließlich ausschließend. Wie würde ich also den Rest einer Liste finden, die von einem Element n ausgeht?

Vielen Dank für all Ihre Hilfe!

35
FurtiveFelon

Sie können ein Ende des Slices offen lassen, indem Sie den Wert nicht angeben.

test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]
55
Angela

Wenn Sie eine Variable als Bereichsendpunkt verwenden, können Sie None verwenden.

 start = 4
 end = None
 test[start:end]
53
recursive

Das Ende einfach weglassen.

test[n:]
8
Matthew

Das Ende wegzulassen funktioniert immer noch, wenn Sie etwas überspringen möchten:

range(10)[3::2] => [3, 5, 7, 9]
4
Doug Bradshaw

Gibt ein Stück der Liste nach einem Startwert zurück:

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
1
Mark Matthews

Sie können auch das Schlüsselwort None für den Parameter end beim Schneiden verwenden. Dies würde auch die Elemente bis zum Ende der Liste zurückgeben (oder eine beliebige Sequenz wie Tuple, String usw.).

# 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)
0
kmario23