À la fin de cette séquence vous serez capable de :
Une liste est une structure de données Python. En effet, elle est une collection ordonnée d’objets de types quelconques séparés par des virgules, l’ensemble étant encadré par des crochets.
Comme un tuple, une liste est une séquence. Autrement dit, les listes fonctionnent comme les tuples.
Mais, contrairement au tuple, une liste est un objet mutable c’est-à-dire modifiable : on peut remplacer, ajouter ou supprimer des éléments à une liste.
On crée trois listes dans la console en saisissant les différents éléments.
a = [5,'spam', True, -9.3]
jours = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
catalogue = ["café",
"farine",
"yaourts",
"jus de fruit",
"pâtes",
"jambon",
"petits gâteaux"
]
Définition :
Ces listes ont été générées à l’aide d’une saisie manuelle de chacun de leurs éléments. On dit que ces listes ont été créées en extension.
Une liste vide :
une_liste = []
type(une_liste)
Comme les tuples, une liste est une séquence . Autrement dit, un ensemble fini et ordonné d’objets indicés (indexés, numérotés) de 0 à n-1 si la liste est composée de n objets.
Ainsi, les éléments d'une liste sont accessibles par leur position dans la liste, via l'indexation. On dit qu’une liste est un objet itérable.
Instruction à saisir dans la console | Résultat |
---|---|
a[0] | |
a[2] | |
'jeudi' | |
'samedi' | |
jours[-1] | |
jours[-2] | |
'lundi' |
catalogue = ["café",
"farine",
"yaourts",
"jus de fruit",
"pâtes",
"jambon",
"petits gâteaux"]
len(jours)
len(a)
'spam' in a
'jeudi' in jours
'spam' not in a
'jeudi' not in a
for produit in catalogue:
print(produit)
for i in range(len(catalogue)):
print(catalogue[i])
#en commençant par le dernier produit
for i in range(len(catalogue) - 1, -1, -1):
print(catalogue[i])
Modifier la valeur d'un élément d'une liste
a[0] = a[0] + 10
print(a)
jours[2] = 'wednesday'
print(jours)
Créer une liste par concaténation de listes
hybride = a + jours
print(hybride)
Découper une liste en tranches : slicing
jours = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
j = jours[0 : 5]
print(j)
l = jours[2:]
print(l)
#Obtenir une tranche de jours du premier à l'élément n°3
k = jours[:4]
print(k)
#Faire une copie de jours
p = jours[:]
print(p)
m = jours[1:7:2]
print(m)
n = jours[-6:-1]
print(n)
s = jours[::-1]
print(s)
# Remplacer une tranche
a[1:3] = ["hello world !"]
p = jours[0::2]
print(p)
Supprimer un élément d'une liste avec del
print("Notre catalogue ne contient plus farine.")
del catalogue[1]
print(f"Notre catalogue est maintenant : {catalogue}")
# Supprimer une tranche
del jours[:3]
La méthode extend permet d'ajouter une liste dans une autre liste
a.extend([False, 'egg', "spam"])
print(a)
La méthode reverse permet d'inverser une liste en place.
jours = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
jours.reverse()
jours
La méthode pop permet de renvoyer et supprimer un élément d'une liste.
# Renvoyer et supprimer le dernier élément
nbres.pop()
nbres
jours = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
# Renvoyer et supprimer l'élément à l'index 2
jours.pop(2)
jours
La méthode split
permet de diviser une phrase (chaîne de caractères) en une liste de ses mots.
ma_phrase = "Bienvenue à l'Institut Pierre et Marie Curie"
ma_phrase.split() #l'espace est considéré comme le séparateur
Pour récupérer une liste de nombres entiers générés par la fonction range(), il faut précéder range() de la fonction list().
#range(fin) : la liste démarre à 0 et s'achève à 10 - 1 = 9
nbres = list(range(10))
print(nbres)
seq_adn = ["A", "T", "G", "A", "T"]
"".join(seq_adn)
"*".join(seq_adn)
"-".join(seq_adn)
"".join(seq_adn)
mon_string = "pizza"
list(mon_string)
Cela dépend de l'utilisation que l'on veut faire de la structure de données.
Une liste est généralement utilisée pour une collection d'objets de même type alors qu'un n-uplet est préféré pour une collection d'objets hétérogènes.
Par ailleurs, un tuple est un bon compromis lorsque l'on ne souhaite pas que la collection de données soient modifiées par inadvertance, par exemple les constantes.
Enfin, l'exécution d'un programme est plus rapide avec un tuple qu'avec une liste.
Exercice 1 :
Exercice 2 :
Qu'identifie la variable lst définie par le code suivant :
lst = range(10, -6, -2)