collections.OrderedDict
クラスの使用に問題があります。私はRaspbian、Raspberry PiのDebianディストリビューションでPython 2.7を使用しています。私はテキストアドベンチャーの比較(並べて)のために2つの辞書を印刷しようとしています。順序は正確に比較するために不可欠です。私が何を試そうとも、辞書は通常の順序どおりに印刷されません。
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)])
関数呼び出しを出力し、キーと値グループをネストされたリストに入れているため、明らかに何かが正しくありません...
これは私が私の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')])
今回は順調ですが、他の物を印刷してはいけませんよね?(リストに入れて、関数呼び出しを表示します。)
エラーはどこにありますか?Pythonのpiバージョンとは関係ありません。これは、Linuxバージョンであるためです。
OrderedDict
は、英数字のキー順ではなく、挿入順にソートされています。