Question

Je n'arrive pas à comprendre comment découper les listes python, voici comment cela se passe:

>>> 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 "repos"? d'une liste à partir d'un élément n?

Merci beaucoup pour votre aide!

Était-ce utile?

La solution

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]

Autres conseils

Si vous utilisez une variable comme extrémité de la plage, vous pouvez utiliser Aucun .

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

Omettez simplement la fin.

test[n:]

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

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

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

Vous pouvez également utiliser le Aucun pour le paramètre end lors du découpage en tranches. Cela renverrait également les éléments jusqu’à la fin de la liste (ou toute séquence telle que tuple, chaîne de caractères, 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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top