Affichage différent entre print et pprint
Salut !
Alors pour les dictionnaires c'est un peu particulier, ça dépend de pas mal de choses. Déjà il faut savoir que les dictionnaires sont ordonnés par ordre d'insertion uniquement depuis la version 3.6 de Python.
Avant ça, tu ne pouvais absolument pas prédire l'ordre dans lequel ton dictionnaire serait.
Depuis les versions 3.6, les dictionnaires sont ordonnés par ordre d'insertion, c’est-à-dire que si tu ajoutes une clé 1 puis une clé 2, elles seront dans cet ordre.
Après, l'ordre n'est pas quelque chose sur lequel tu peux te reposer pour un dictionnaire. Contrairement à une liste qui repose sur les indices, les dictionnaires utilisent les clés, donc tu ne peux par exemple pas récupérer le 1er ou 2e élément d'un dictionnaire. Tu peux le faire en utilisant les clés transformées en liste mais là encore ça nécessite des manipulations pour être sûr de ce que tu fais.
Un bon exemple serait si tu as des dates en clé et que tu souhaites les afficher dans l'ordre :
>>> d = {"2022-01-20": 100, "2022-01-25": 200, "2022-01-10": 150}
>>> d
{'2022-01-20': 100, '2022-01-25': 200, '2022-01-10': 150}
# Les clés sont bien affichées dans l'ordre d'insertion en bouclant sur le dictionnaire
>>> for key, value in d.items():
print(key, value)
2022-01-20 100
2022-01-25 200
2022-01-10 150
# Si tu veux afficher les clés dans l'ordre selon la date, il faut passer par un tri des clés avec sorted.
>>> for key in sorted(d.keys()):
print(key, d[key])
2022-01-10 150
2022-01-20 100
2022-01-25 200
Et entre print et pprint, là on parle juste d'affichage. Il est probable que pprint fasse un tri quelconque pour t'afficher le dictionnaire par ordre alphabétique par exemple (à vérifier).
Voilà, réponse un peu longue mais je pense qu'il est important de comprendre ces nuances :)
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte