2009-03-07 4 views
26

Je vais avoir une certaine difficulté à comprendre comment trancher des listes de python, il est illustré comme suit:Comment découper une liste d'un élément n à la fin 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] 

Pour ma compréhension, tranche de python signifie LST [début: fin], et y compris le démarrage, à l'exclusion fin. Alors, comment puis-je trouver le "reste" d'une liste à partir d'un élément n?

Merci beaucoup pour votre aide!

Répondre

45

Vous pouvez laisser une extrémité de la découpe ouverte en ne spécifiant pas la valeur.

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

omettez simplement la fin.

test[n:] 
34

Si vous utilisez une variable comme le point final de la plage, vous pouvez utiliser None.

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

En quittant la fin fonctionne toujours lorsque vous voulez sauter quelques-uns:

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

Retour une tranche de la liste après une valeur de départ:

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 
Questions connexes