J'ai des difficultés à utiliser le collections.OrderedDict
la classe. J'utilise Python 2.7 sur Raspbian, la distribution Debian pour Raspberry Pi. J'essaie d'imprimer deux dictionnaires dans l'ordre pour les comparer (côte à côte) dans le cadre d'une aventure textuelle. L'ordre est essentiel pour pouvoir comparer avec précision. Peu importe ce que j'essaie, les dictionnaires s'impriment dans leur ordre habituel.
Voici ce que j'obtiens lorsque 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)])
Il y a manifestement 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...
C'est 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 en ordre, mais ça ne devrait pas imprimer les autres choses, non ? (La mise dans la liste et l'appel de la fonction d'affichage).
Où est-ce que je fais mon erreur ? Cela ne devrait pas avoir de rapport avec la version pi de Python car il s'agit simplement de la version Linux.