Découpage des listes#

Une tâche courante en Python consiste à découper des parties de listes et de tuples, par exemple pour accéder à des parties spécifiques des listes.

Commençons par une liste de nombres

data = [34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

Nous pouvons déterminer combien d’éléments se trouvent dans data :

len(data)
10

Comme montré précédemment, nous pouvons accéder à des éléments spécifiques en passant un index. Le comptage de l’index des éléments commence à 0.

data[0]
34
data[1]
0

Nous pouvons également passer des indices négatifs. Cela permettra d’accéder aux éléments à partir de la fin de la liste. Le dernier élément a l’index -1.

data[-1]
100
data[-2]
34

Sélection de plages dans les listes#

Nous pouvons également générer une nouvelle liste contenant les trois premiers éléments. Pour cela, nous passons une plage sous la forme [début:fin]. Le premier élément a l’index début et le dernier élément de la nouvelle liste sera juste avant fin.

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[0:2]
[34, 0]
data[0:3]
[34, 0, 65]
data[1:2]
[0]

De plus, nous n’avons pas besoin de spécifier ni début ni fin si nous voulons sélectionner toutes les entrées d’une liste depuis le début ou jusqu’à la fin.

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[:2]
[34, 0]
data[:3]
[34, 0, 65]
data[2:]
[65, 23, 51, 9, 50, 78, 34, 100]
data[3:]
[23, 51, 9, 50, 78, 34, 100]

Cela fonctionne également avec des indices négatifs

data[-2:]
[34, 100]

Parcourir les entrées des listes par pas#

Le : peut également être utilisé pour fournir une longueur de pas en utilisant la syntaxe [début:fin:pas].

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

Par exemple, nous pouvons sélectionner un élément sur deux en commençant par le premier :

data[0:10:2]
[34, 65, 51, 50, 34]
data[::2]
[34, 65, 51, 50, 34]

Nous pouvons aussi commencer par le deuxième élément (index 1) :

data[1::2]
[0, 23, 9, 78, 100]

Tuples#

Tous les concepts introduits ci-dessus fonctionnent également avec les tuples

immutable_data = tuple(data)
immutable_data
(34, 0, 65, 23, 51, 9, 50, 78, 34, 100)
immutable_data[:5]
(34, 0, 65, 23, 51)

Exercice#

Veuillez sélectionner les trois nombres 23, 9 et 78 de data en utilisant une seule commande Python similaire aux commandes montrées ci-dessus.