2012-04-29 61 views
6

tôi cần giúp đỡ cho trường hợp này:python: làm thế nào để vô hiệu hóa tự động loại khi tạo từ điển

m={} 
m[1]=1 
m[333]=333 
m[2]=2 

# Result: 
{1: 1, 2: 2, 333: 333} 

vì vậy ngay cả khi tôi đã không nhập '333' cuối cùng, tôi đã nhận này '333' được liệt kê trong cuối từ điển khi in ra. tại sao 'từ điển' này lại tự động sắp xếp? và làm thế nào vô hiệu hóa nó? tôi có thể tạo một hàm để sắp xếp lại để sửa thứ tự. nhưng đó không phải là những gì tôi muốn, tôi chỉ đơn giản là muốn in và nhận được thứ tự đầu ra giống như thứ tự khi tôi nhập dữ liệu. Có bất kỳ lời giải thích tốt và có giải pháp nào không?

+0

http://stackoverflow.com/questions/1872329/storing-python-dictionary-entries-in-the-order-they-are-pushed – shiva

+0

Bạn rất có thể muốn sử dụng 'OrderedDict'. –

+0

Thanx guyz, điều đó giải thích tại sao tôi gặp vấn đề này. cổ vũ. – andio

Trả lời

20

Nó không phải là phân loại. dict không được đặt hàng, vì vậy bạn không thể ảnh hưởng đến thứ tự khóa theo bất kỳ cách nào. Có collections.OrderedDict trong 2,7 và 3,1+, cũng có standalone module cho 2,4-2,6.

+0

+1: Đã xóa câu trả lời của tôi ủng hộ điều này. – Johnsyweb

+0

tuyệt. orderdict là thứ tôi đang tìm kiếm. Cảm ơn nhiều. – andio

+0

@andio chấp nhận anwser sau đó – wRAR

1

Các mục được lưu trữ trong từ điển không có bất kỳ thứ tự vốn có nào. Thứ tự chúng được in ra hoàn toàn là giá trị băm cho mỗi phím và các mục khác trong từ điển.

+0

Thanx rất nhiều cho thông tin. – andio

Các vấn đề liên quan