Python Tips - Convert two lists into a dictionary
Aujourd'hui nous allons voir quelque chose d'assez simple mais qui peut s'avérer très utile. Quand on programme en Python, on aime bien trouver des moyens de raccourcir le code quand c'est possible. A cet effet, Python intègre de très nombreuses fonction et méthodes de classes très utiles.
Mais alors qu'allons nous apprendre ?
Nous allons apprendre à construire ce dictionnaire :
{
'apples': 5,
'beans': 8,
'cherry': 7
}
À partir des listes suivantes:
quantity = [5, 8, 7]
item_name = ["apples", "beans", "cherry"]
AH, facile ça ! il suffit de faire une petite boucle
for ... in ...:
Et vous n'auriez pas faux.. Ça donne ceci
# METHOD 1
result = {}
for i in range(0, min(len(quantity), len(quantity))):
key = item_name[i]
value = quantity[i]
result[key] = value
Le résultat:
>>>print(result)
{'apples': 5, 'beans': 8, 'cherry': 7}
Génial, ça marche ! Mais c'est un peu long.
À ça oui c'est un peu long, c'est même plutôt long...
Voici une méthode plus rapide:
result2 = dict(zip(item_name, quantity))
Le résultat:
>>>print(result2)
{'apples': 5, 'beans': 8, 'cherry': 7}
HA ! une ligne ! trop facile!
Trop bien gros malin, comment ça marche cette ligne magique
Décortiquons ça ensemble.
La fonction zip()
prend en paramètre un nombre n d'itérateurs (des listes ici) et renvoie une série de tuples accolant les valeurs des listes.
Un exemple vaut milles mots, regardez:
>>>print(list(zip(chiffres, mots)))
[('apples', 5), ('beans', 8), ('cherry', 7)]
Quand au dict()
c'est le constructeur de la classe dictionnaire. Quand il prend une liste de tuple en arguments, il prend construit le dictionaire en mettant la première valeur du tuple en clé et la seconde en value.
Vous pourrez retrouver une bonne partie des articles de ce compte sur ce repo.
Pour accéder directement la section que vous regardez actuellement cliquer ici.
Vous êtes arrivé à la fin, bravo! Si vous avez des questions, n'oubliez pas de les poser. A la prochaine !