Comment découper une liste d'un élément n à la fin en python?
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!
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)