Listes et Dictionnaires

Listes et Dictionnaires

Les Listes

liste_1 = [1, 7, 14, -9, 10]
animaux = ['vache','cochon','chien']
prenom = "roger"    
# String = liste de caractères
# Un TUPLE est une 
# liste NON MODIFIABLE ( constante )
tuple_1 = (0,1,2)  

liste_1.svg

Ajout d’éléments dans la liste

# Ajout en fin de liste  
animaux.append('chat')

# Insertion à une position donnée  
animaux.insert(2,'cheval')
print(animaux)
['vache', 'cochon', 'cheval', 'chien', 'chat']

liste_2.svg

Concaténation de 2 listes

# Concaténation de 2 listes  
animaux_australiens=['kangourou', 'autruche']
animaux.extend(animaux_australiens)
print(animaux)
['vache', 'cochon', 'cheval', 'chien', 'chat', 'kangourou', 'autruche']

liste_3.svg

Accès aux éléments de la liste / Slicing

print(animaux[0])  # 1er element
print(animaux[-1]) # dernier element
vache
autruche
liste_1[2]
14
liste_1[1:3] # de 1 jusqu'à 3 exclus
[7, 14]
liste_1[:3] # tout jusqu'à 3 exclus
[1, 7, 14]
liste_1[2:] # tout depuis l'élément 2 jusqu'à la fin
[14, -9, 10]
liste_1[-1] # dernier element 
10
liste_1[-2] # element 2 en partant de la fin 
-9
liste_1[:-2] # tout jusqu'à l'élément -2 exlus
[1, 7, 14]

liste_4.svg

liste_5.svg

Opération sur les listes

# Nombre d'éléments  
print(len(animaux)) 
7
# Classement
animaux.sort()          
print(animaux)
['autruche', 'chat', 'cheval', 'chien', 'cochon', 'kangourou', 'vache']

liste_6.svg

# nombre d'occurence dans la liste
animaux[3]='cochon'
print(animaux.count('cochon')) 
2
# Test d'un élément de la liste
if 'cheval' in animaux:
    print('oui')
else:
    print('non')  
oui
# Parcours de la Liste dans une boucle
for i in animaux:
    print(i)
autruche
chat
cheval
cochon
cochon
kangourou
vache
# Enumération de la Liste
for index,valeur in enumerate(animaux):
    print(index, valeur)    
0 autruche
1 chat
2 cheval
3 cochon
4 cochon
5 kangourou
6 vache
# Association de 2 listes
for a,b in zip(animaux,liste_1):
    print(a,b)    
autruche 1
chat 7
cheval 14
cochon -9
cochon 10

Dictionnaires

Création d’un Dictionnaire

contrairement à une liste, les éléments d’un dictionnaire ne sont pas indexés.
On effectue juste une relation entre l’entrée ( key ) et sa valeur ( value ).

d_traduction = {
		"chien" : "dog",
		"chat" : "cat",
		"cheval" : "horse",
		"cochon" : "pig"
}
print(d_traduction)    
{'chien': 'dog', 'chat': 'cat', 'cheval': 'horse', 'cochon': 'pig'}

dictionnaire_1.svg

d_notes = { 
            "martin" : 16.5,
            "roger" : 12,
            "pierre" : 19
}

dictionnaire_2.svg

# Concaténation de 2 dictionnaires  
d_concat = { 
            "dict_1" : d_traduction,
            "dict_2" : d_notes
}            

print(d_concat)
{'dict_1': {'chien': 'dog', 'chat': 'cat', 'cheval': 'horse', 'cochon': 'pig'}, 
'dict_2': {'martin': 16.5, 'roger': 12, 'pierre': 19}}

dictionnaire_3.svg

Manipulation d’un Dictionnaire

# Entrées 
print(d_traduction.keys())
dict_keys(['chien', 'chat', 'cheval', 'cochon'])
# Valeurs
print(d_notes.values())
dict_values([16.5, 12, 19, 18])
# nombre d'éléments
print(len(d_traduction))
4
# nombre d'éléments
print(len(d_traduction))
{'martin': 16.5, 'roger': 12, 'pierre': 19, 'sophie': 18}
# Récupération propre d'une valeur
print(d_notes.get("martin","absent"))
16.5
print(d_notes.get("paul","absent"))
absent
# parcours d'un dictionnaire
for k,v in d_notes.items():  # k <- keys, v <- values  
    print(k,v)
martin 16.5
roger 12
# Récupérer la valeur d'un élément du dictionnaire, et supprimer cet élément  
print(d_notes)
note = d_notes.pop('pierre')
print(note)
print(d_notes)
{'martin': 16.5, 'roger': 12, 'pierre': 19}
19
{'martin': 16.5, 'roger': 12}

Création d’un Dictionnaire à partir de listes

# Création d'un dictionnaire à partir de listes
l_classe_2 = ['annie','jacques','jean']
d_notes_classe_2 = d_notes.fromkeys(l_classe_2, 'empty')
print(d_notes_classe_2)
{'annie': 'empty', 'jacques': 'empty', 'jean': 'empty'}

dictionnaire_4.svg

# Création d'un dictionnaire à partir de listes

capitales = [ 'Paris', 'Madrid', 'Rome', 'Berlin'  ]
pays = [ 'France', 'Espagne', 'Italie', 'Allemagne'  ]  

d_cap_pays = {k:v for k,v in zip(capitales, pays)}       
print(d_cap_pays)
{'Paris': 'France', 'Madrid': 'Espagne', 'Rome': 'Italie', 'Berlin': 'Allemagne'}

dictionnaire_5.svg

# Ajout d'une condition pour créer le dictionnaire
         # do this | for this collection        | if ...
d_cap_pays = {k:v for k,v in zip(capitales, pays) if v > 'F'}       
print(d_cap_pays)
{'Paris': 'France', 'Rome': 'Italie'}