Manipuler les données de liste

Effectué

Vous devrez peut-être utiliser différentes parties d’une liste. Par exemple, supposons que vous ayez une liste comportant des niveaux de précipitations sur divers mois. Pour analyser correctement ce type de données, vous devrez peut-être rechercher les précipitations sur une période de trois mois. Vous pouvez également trier la liste du niveau de précipitation le plus élevé au moins élevé.

Python fournit une prise en charge robuste de l’utilisation des données dans les listes. Cette prise en charge comprend le découpage des données (examen d’une partie seulement) et le tri.

Listes par tranches

Vous pouvez récupérer une partie d’une liste en utilisant une tranche. Une tranche utilise des crochets, mais au lieu d’un seul élément, elle comporte les index de début et de fin. Quand vous utilisez une tranche, vous créez une liste qui commence à l’index de départ et s’arrête avant (et n’inclut pas) l’index de fin.

La liste des planètes comporte huit éléments. La Terre est la troisième de la liste. Pour connaître les planètes situées avant la Terre, utilisez une tranche afin d’obtenir les éléments commençant à 0 et finissant à 2 :

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets_before_earth = planets[0:2]
print(planets_before_earth)

Sortie : ['Mercury', 'Venus']

Notez que la Terre n’est pas incluse dans la liste. En effet, l’index s’arrête avant l’index de fin.

Pour obtenir toutes les planètes situées après la Terre, en commençant à la troisième et en allant jusqu’à la huitième :

planets_after_earth = planets[3:8]
print(planets_after_earth) 

Sortie : ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

Dans l’exemple, Neptune s’affiche. En effet, l’index de Neptune est 7, car l’indexation commence à 0. Dans la mesure où l’index de fin est 8, il inclut la dernière valeur. Si vous ne placez pas d’index de fin dans la tranche, Python suppose que vous souhaitez aller jusqu’à la fin de la liste :

planets_after_earth = planets[3:]
print(planets_after_earth)

Sortie : ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

Important

Une tranche crée une autre liste. Elle ne modifie pas la liste actuelle.

Joindre des listes

Vous avez vu comment utiliser des tranches pour diviser des listes, mais qu’en est-il si vous souhaitez les joindre ?

Pour joindre deux listes, utilisez l’autre opérateur (+) avec deux listes afin de retourner une nouvelle liste.

Il existe 79 lunes connues de Jupiter. Les quatre plus grandes sont Io, Europe, Ganymède et Callisto. Ces lunes sont appelées les lunes galiléennes, car Galilée les a découvertes à l’aide de son télescope en 1610. Plus proche de Jupiter que le groupe de Galilée se trouve le groupe d’Amalthée. Il s’agit des lunes Métis, Adrastée, Amalthée et Thébé.

Créez deux listes. Remplissez la première liste avec les quatre lunes d’Amalthée et la deuxième liste avec les quatre lunes galiléennes. Joignez-les à l’aide de + pour en faire une nouvelle liste :

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

Sortie : The regular satellite moons of Jupiter are ['Metis', 'Adrastea', 'Amalthea', 'Thebe', 'Io', 'Europa', 'Ganymede', 'Callisto']

Important

La jonction des listes entraîne la création d’une autre liste. Elle ne modifie pas la liste actuelle.

Trier des listes

Pour trier une liste, utilisez la méthode .sort() sur la liste. Python trie une liste de chaînes par ordre alphabétique et une liste de nombres par ordre numérique :

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort()
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

Sortie : The regular satellite moons of Jupiter are ['Adrastea', 'Amalthea', 'Callisto', 'Europa', 'Ganymede', 'Io', 'Metis', 'Thebe']

Pour trier une liste dans l’ordre inverse, appelez .sort(reverse=True) sur la liste :

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort(reverse=True)
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

Sortie : The regular satellite moons of Jupiter are ['Thebe', 'Metis', 'Io', 'Ganymede', 'Europa', 'Callisto', 'Amalthea', 'Adrastea']

Important

L’utilisation de sort modifie la liste actuelle.