2012-11-05 64 views

Trả lời

12

Từ điển không có thứ tự và do đó không có bắt đầu hoặc kết thúc. Thứ tự hiển thị là tùy ý. Nếu bạn cần trật tự, bạn có thể sử dụng một list của tuple s thay vì một dict:

In [1]: mylist = [] 

In [2]: mylist.append(('key', 'value')) 

In [3]: mylist.insert(0, ('foo', 'bar')) 

Bạn sẽ có thể dễ dàng chuyển đổi nó thành một dict sau:

In [4]: dict(mylist) 
Out[4]: {'foo': 'bar', 'key': 'value'} 

Ngoài ra, sử dụng a collections.OrderedDict theo đề xuất của IamAlexAlright.

+0

thx, đã hoạt động – user1801180

4

No. Kiểm tra OrderedDict từ mô-đun bộ sưu tập.

5

A dict trong Python không được "đặt hàng" - bằng Python 2.7+ có collections.OrderedDict, nhưng ngoài ra - không ... Điểm then chốt của từ điển trong Python là giá trị tra cứu chính ... bạn thấy chúng hoàn toàn tùy ý tùy thuộc vào thuật toán băm ...

+0

Nó phụ thuộc vào thuật toán băm và thứ tự các mục được chèn vào (khi xảy ra xung đột). – mgilson

+0

@mgilson Yup - hoàn toàn khác với bản đồ C++' - đảm bảo sắp xếp các khóa - v.v. ... –

+1

Tôi sẽ không biết về C++ ... Lớp lập trình đầu tiên của tôi là C++ và tôi * ghét nó . Tôi nghĩ rằng lập trình là điều ngu ngốc nhất từ ​​trước tới nay. Trớ trêu thay, cuối cùng tôi lớn lên như lập trình khi tôi bắt đầu lập trình trong C và sau đó là Fortran sau đó (có vẻ như tôi đã đi ngược lại một chút). Và python, Fortan và C là khá nhiều ngôn ngữ duy nhất mà tôi viết ngay bây giờ - với một hệ vỏ nhỏ ở đây và ở đó khi cần thiết. – mgilson

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