Saya mengalami masalah dalam menggunakan collections.OrderedDict
kelas. Saya menggunakan Python 2.7 di Raspbian, distro Debian untuk Raspberry Pi. Saya mencoba mencetak dua kamus untuk perbandingan (berdampingan) untuk petualangan teks. Urutan ini penting untuk membandingkan secara akurat. Apa pun yang saya coba, kamus cetak dengan cara yang tidak teratur seperti biasanya.
Inilah yang saya dapatkan ketika saya melakukannya di RPi saya:
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)])
Jelas ada sesuatu yang tidak beres karena ia mencetak panggilan fungsi dan meletakkan kunci dan grup nilai ke dalam daftar bersarang ...
Inilah yang saya dapatkan dengan menjalankan sesuatu yang serupa pada PC saya:
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')])
Kali ini, ini sudah beres, tetapi seharusnya tidak mencetak hal-hal lain kan? (The memasukkannya ke dalam daftar dan menunjukkan panggilan fungsi.)
Di mana saya membuat kesalahan? Seharusnya tidak ada hubungannya dengan versi pi Python karena hanya versi Linux.
OrderedDict
diurutkan berdasarkan urutan penyisipan, bukan urutan kunci alfanumerik.