2009-03-07 14 views
26

Mam pewne problemy ze zorientowaniem się, jak kroić listy Python, to jest zilustrowane następująco:Jak wyciąć listę z elementu n na koniec w pythonie?

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

mojego rozeznania, plaster pyton oznacza lst [Start: Koniec], a tym start, bez końca. Więc jak miałbym znaleźć "resztę" listy zaczynając od elementu n?

Wielkie dzięki za pomoc!

Odpowiedz

45

Możesz zostawić jeden koniec plasterka otwarty, nie podając jego wartości.

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

Jeśli używasz zmiennej jako punktu końcowego zakresu, możesz użyć None.

start = 4 
end = None 
test[start:end] 
2

Pomijając koniec nadal działa, gdy chcesz pominąć niektóre:

range(10)[3::2] => [3, 5, 7, 9] 
1

zamian kromkę listy po wartości początkowej:

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 
Powiązane problemy