J'ai du mal à utiliser la collections.OrderedDict
classe. J'utilise Python 2.7 sur Raspbian, la distribution Debian pour Raspberry Pi. J'essaie d'imprimer deux dictionnaires afin de les comparer (côte à côte) pour une aventure textuelle. La commande est essentielle pour comparer avec précision. Peu importe ce que j'essaye, les dictionnaires s'impriment de leur manière non ordonnée habituelle.
Voici ce que j'obtiens quand je le fais sur mon RPi:
import collections
ship = {"NAME": "Albatross",
"HP":50,
"BLASTERS":13,
"THRUSTERS":18,
"PRICE":250}
ship = collections.OrderedDict(ship)
print ship
# OrderedDict([('PRICE', 250), ('HP', 50), ('NAME', 'Albatross'), ('BLASTERS', 13), ('THRUSTERS', 18)])
De toute évidence, il y a quelque chose qui ne va pas car il imprime l'appel de fonction et met les clés et les groupes de valeurs dans une liste imbriquée ...
Voici ce que j'ai obtenu en exécutant quelque chose de similaire sur mon PC:
import collections
Joe = {"Age": 28, "Race": "Latino", "Job": "Nurse"}
Bob = {"Age": 25, "Race": "White", "Job": "Mechanic", "Random": "stuff"}
#Just for clarity:
Joe = collections.OrderedDict(Joe)
Bob = collections.OrderedDict(Bob)
print Joe
# OrderedDict([('Age', 28), ('Race', 'Latino'), ('Job', 'Nurse')])
print Bob
# OrderedDict([('Age', 25), ('Race', 'White'), ('Job', 'Mechanic'), ('Random', 'stuff')])
Cette fois, c'est dans l'ordre, mais il ne devrait pas imprimer les autres choses, n'est-ce pas? (La mise en liste et l'affichage de l'appel de fonction.)
Où est-ce que je fais mon erreur? Cela ne devrait rien avoir à voir avec la version pi de Python car ce n'est que la version Linux.
OrderedDict
est trié par ordre d'insertion et non par ordre de touches alphanumériques.