web-dev-qa-db-fra.com

Comment découper une liste d'un élément n à la fin en python?

J'ai du mal à comprendre comment découper des listes de python, cela est illustré comme suit:

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

À ma connaissance, tranche de python signifie lst [début: fin], et inclut le début, excluant la fin. Alors, comment pourrais-je trouver le "reste" d'une liste à partir d'un élément n?

Merci beaucoup pour toute votre aide!

35
FurtiveFelon

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

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

Si vous utilisez une variable en tant que point final de la plage, vous pouvez utiliser None.

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

Omettez simplement la fin.

test[n:]
8
Matthew

Laisser la fin fonctionne quand vous voulez en sauter quelques unes:

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

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

Vous pouvez également utiliser le mot clé None pour le paramètre fin lors de la découpe. Cela renverrait également les éléments jusqu'à la fin de la liste (ou n'importe quelle séquence telle que Tuple, chaîne, 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)
0
kmario23