У мене є проблеми з використанням collections.OrderedDict
класу. Я використовую Python 2.7 на Raspbian, дистрибутив Debian для Raspberry Pi. Я намагаюся надрукувати два словники, щоб порівняти (поруч) текстову пригоду. Порядок є важливим для точного порівняння. Незалежно від того, що я намагаюся надрукувати словники в їх звичайному не упорядкованому вигляді.
Ось що я отримую, коли це роблю на своєму 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)])
Очевидно, що щось не вірно, тому що він друкує виклик функції та ставить ключі та групи значень у вкладений список ...
Ось що я отримав, запустивши щось подібне на своєму ПК:
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')])
Цього разу це в порядку, але не слід друкувати інші речі, хоча так? (Внесення його до списку та показ виклику функції.)
Де я роблю свою помилку? Це не повинно бути нічого спільного з пі-версією Python, оскільки це лише версія Linux.
OrderedDict
сортується за порядком вставки, а не буквено-цифровим порядком ключів.