Khóa từ điển python có duy trì trật tự không?

OrderedDict là một lớp con từ điển ghi nhớ thứ tự các phím được chèn lần đầu tiên. Sự khác biệt duy nhất giữa dict[] và OrderedDict[] là

OrderedDict giữ nguyên thứ tự các phím được chèn. Một dict thông thường không theo dõi thứ tự chèn và việc lặp lại nó sẽ cung cấp các giá trị theo thứ tự tùy ý. Ngược lại, thứ tự các mục được chèn vào được ghi nhớ bởi OrderedDict

Python3




Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
4

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
8

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00______00
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
2
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
4

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
11____07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
14

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16______07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
19

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
41____07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
44

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
48

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00____954
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
56
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
58

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6______07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
11
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
14

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
19

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
41
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
44

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

đầu ra.  

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9

Điểm quan trọng.  

1. Giá trị khóa Thay đổi. Nếu giá trị của một khóa nào đó bị thay đổi thì vị trí của khóa đó không thay đổi trong OrderedDict

Python3




Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
86

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
87

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
8

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00____994
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
56
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
58

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6______07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
11
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
14

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
19

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
41
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
44

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
18
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
24

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

đầu ra.  

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4

2. Xóa và chèn lại. Xóa và chèn lại cùng một khóa sẽ đẩy nó ra phía sau vì OrderedDict, tuy nhiên, vẫn duy trì thứ tự chèn

Python3




Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
32

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
33

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
5
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
8

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
40
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
56
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
58

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
6______07
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
11
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
14

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
19

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
41
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
44

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
74
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
76
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

 

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
00
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
88
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
59
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
16
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
7
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
3
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
19

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
45
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
46
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
47
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
82

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
49
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
9
Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
51

đầu ra.  

Before:

a 1
b 2
c 3
d 4

After:

a 1
b 2
c 5
d 4
1

Những ý kiến ​​khác.   

  • Đã đặt hàng dict trong Python phiên bản 2. 7 tiêu thụ nhiều bộ nhớ hơn dict bình thường. Điều này là do việc triển khai Danh sách liên kết kép cơ bản để giữ trật tự. Trong Python 2. 7 Ordered Dict không phải là lớp con dict, nó là một vùng chứa chuyên dụng từ mô-đun bộ sưu tập
  • Bắt đầu từ Python 3. 7, thứ tự chèn của từ điển Python được đảm bảo
  • Ordered Dict có thể được sử dụng như một ngăn xếp với sự trợ giúp của chức năng popitem. Hãy thử triển khai bộ đệm LRU với Ordered Dict

Bài viết này được đóng góp bởi Sri Sanketh Uppalapati. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write. chuyên viên máy tính. org hoặc gửi bài viết của bạn tới review-team@geeksforgeeks. tổ chức. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp các Geeks khác

Vui lòng viết bình luận nếu bạn thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề thảo luận ở trên

Các phím dict Python có được đặt hàng không?

Kể từ phiên bản Python 3. 7, từ điển được sắp xếp . Trong Trăn 3. 6 trở về trước, từ điển không có thứ tự.

Thứ tự từ điển Python có được đảm bảo không?

Miễn là không có sửa đổi nào đối với từ điển, câu trả lời là có . Xem các tài liệu ở đây. Tuy nhiên, từ điển không có thứ tự tự nhiên trong Python. Nói chung, đó không phải là cách tốt nhất để dựa vào từ điển cho dữ liệu được sắp xếp nhạy cảm.

Từ điển có giữ trật tự không?

Từ điển là ánh xạ và không giữ nguyên thứ tự . Nếu bạn muốn các khả năng của một từ điển nhưng bạn cũng muốn đặt hàng, bạn có thể làm điều đó bằng cách sử dụng đối tượng ra lệnhdict. OrderedDict là một lớp con từ điển ghi nhớ thứ tự các phím được chèn lần đầu tiên.

Các khóa từ điển Python được sắp xếp như thế nào?

Cần sắp xếp trong từ điển .
Đầu tiên, sắp xếp các khóa theo thứ tự abc bằng key_value. hàm iterkey[]
Thứ hai, sắp xếp các khóa theo thứ tự bảng chữ cái bằng hàm đã sắp xếp [giá trị khóa] và in giá trị tương ứng với nó
Thứ ba, sắp xếp các giá trị theo thứ tự abc bằng key_value. iteritems[], key = lambda [k, v]. [v,k]]

Chủ Đề