2009-03-07 22 views
26

Estoy teniendo algunos problemas para averiguar cómo cortar las listas de Python, que se ilustra de la siguiente manera:Cómo dividir una lista de un elemento n hasta el final en python?

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

A mi entender, el tramo de pitón significa LST [Inicio: Fin], y que incluye inicio, excluyendo final. Entonces, ¿cómo voy a encontrar el "resto" de una lista a partir de un elemento n?

¡Muchas gracias por toda su ayuda!

Respuesta

45

Puede dejar un extremo del sector abierto al no especificar el valor.

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

Simplemente omita el extremo.

test[n:] 
34

Si utiliza una variable como el punto final de gama, puede utilizar None.

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

Dejando de lado al final todavía funciona cuando se quiere pasar por alto algunos:

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

Volver una rebanada de la lista después de un valor de partida:

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 
Cuestiones relacionadas