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!
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]
Si vous utilisez une variable en tant que point final de la plage, vous pouvez utiliser None
.
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 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)