Lorsque vous appelez dict.values (), l'ordre des éléments renvoyés dépend de la valeur has des clés. Cela semble être très cohérent dans toutes les versions de cPython, cependant le manuel python pour dict simply states that the ordering is "arbitrary". Je me souviens d'avoir lu quelque part qu'il existe réellement un PEP qui spécifie spécifiquement l'ordre attendu des méthodes items() et values ().Quel PEP gouverne l'ordre de dict.values ()?
FYI, si ce comportement est en effet un comportement garanti d'une classe sur laquelle je travaille, je pourrais grandement simplifier et accélérer une classe sur laquelle je travaille. D'un autre côté, s'il s'agit simplement d'une caractéristique accidentelle et non documentée de cPython, il est probablement préférable de ne pas lui faire confiance.
Notez que l'ordre sera conforme pour un dict donné (jusqu'à ce dict est modifié) sur une version Python donnée, sur une plate-forme donnée. Ainsi, vous pouvez compter sur une dict donnée en restant ordonnée de la même manière dans une seule instance de votre code de fonctionnement, mais pas au-delà. Bien sûr, il est préférable de ne jamais se fier à quelque chose lié à la commande d'un dict. –