Tôi đang gặp một số rắc rối khi sử dụng collections.OrderedDict
lớp học. Tôi đang sử dụng Python 2.7 trên Raspbian, bản phân phối Debian cho Raspberry Pi. Tôi đang cố gắng in hai cuốn từ điển để so sánh (cạnh nhau) cho một cuộc phiêu lưu văn bản. Thứ tự là cần thiết để so sánh chính xác. Không có vấn đề gì tôi thử từ điển in theo cách không có thứ tự thông thường của họ.
Đây là những gì tôi nhận được khi thực hiện trên RPi của mình:
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)])
Rõ ràng có điều gì đó không đúng bởi vì nó đang in lệnh gọi hàm và đưa các khóa và nhóm giá trị vào một danh sách lồng nhau ...
Đây là những gì tôi có được bằng cách chạy một cái gì đó tương tự trên PC của tôi:
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')])
Lần này, theo thứ tự, nhưng nó không nên in những thứ khác mặc dù phải không? (Việc đưa nó vào danh sách và hiển thị chức năng gọi.)
Tôi đang mắc lỗi ở đâu? Không nên làm gì với phiên bản pi của Python vì đây chỉ là phiên bản Linux.
OrderedDict
được sắp xếp theo thứ tự chèn, không phải thứ tự phím chữ và số.