Nous pouvons être amené à remplir des listes.
Pour cela, nous pouvons utiliser une boucle for comme dans l'exemple ci-dessous:
liste=[]
for i in range(10):
liste.append(i**2)
print(liste)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Comme vous pouvez le constater, nous avons rangé dans la liste, les 10 premiers carrés.
Nous pouvons faire la même chose de façon plus rapide en compréhension de liste.
liste=[i**2 for i in range(10)]
print(liste)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Vous aurez compris la structure:
Nom_de_la_liste=[expression for i in conteneur]
Vous allez construire par compréhension de liste,
la liste des lettres de l'alphabet à partir de conteneur 'abcdefghijklmnopqrstuvwxyz'
liste=[i for i in 'abcdefghijklmnopqrstuvwxyz']
print(liste)
Dans les séquences suivantes, vous allez avoir l'occasion de remplir des listes.
Lorsque que ce sera possible, essayez de les remplir par compréhension.
### Section des fonctions
def dico_L_N():
"""Cette fonction permet de remplir un dictionnaire de correspondance entre les lettres de l'alphabet et les nombres de 0 à 25."""
lien_L_N={} # Initialise un dictionnaire vide
j=0
alphabet='abcdefghijklmnopqrstuvwxyz'
for i in alphabet:
lien_L_N[i]=j # Remplit le dictionnaire en établissant la correspondance lettre-nombre
j=j+1 # Pensez à incrémenter j
return lien_L_N
### Section main
print(dico_L_N())
Nous allons costruire le dictionnaire faisant le lien entre les nombres de 0 à 25 et les lettres de l'alphabet.
Pour cela, nous allons avoir besoin de la méthode items(),
qui appliqué à un dictionnaire renvoie sa liste de tuples (clés,valeurs).
Construisez par compréhension, le dictionnaire {nombres:lettres}
### section des fonctions
def dico_L_N():
"""Cette fonction permet de remplir un dictionnaire de correspondance entre les lettres de l'alphabet et les nombres de 0 à 25."""
lien_L_N={} # Initialise un dictionnaire vide
j=0
alphabet='abcdefghijklmnopqrstuvwxyz'
for i in alphabet:
lien_L_N[i]=j # Remplit le dictionnaire en établissant la correspondance lettre-nombre
j=j+1 # Pensez à incrémenter j
return lien_L_N
### Section main
d=dico_L_N()
dico_N_L={v:k for k, v in d.items()}
print(dico_N_L)
Vous remarquerez que l'ordre est resté le même. C'est le hasard. En effet, un dictionnaire n'a pas d'ordre.
Les couples auraient pu être rangé différemment.
Il existe deux autres méthodes que nous pouvons utiliser sur les dictionnaires.
La méthode keys() qui donne la liste des clés du dictionnaire (pas forcément dans l'ordre du dictionnaire).
La méthode values() qui donne la liste des valeurs, dans le même ordre que la liste donnée par la méthode keys().