Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách sắp xếp Dictionary trong Python?


Dictionary là cấu trúc dữ liệu bao gồm các cặp key (khóa) và value (giá trị). Chúng ta có thể sắp xếp dictionary theo hai tiêu chí:

Sắp xếp theo key – Dictionary được sắp xếp theo thứ tự tăng dần của các khóa. Giá trị không được quan tâm.

Sắp xếp theo value – Dictionary được sắp xếp theo thứ tự tăng dần của các giá trị.

Phương pháp 1 – Sắp xếp dictionary theo key

Trong cách này, dictionary được sắp xếp theo thứ tự tăng dần của khóa.

Đầu vào:

{2:90, 1: 100, 8: 3, 5: 67, 3: 5}

Đầu ra:

{1:100, 2:90, 3:5, 5:67, 8:3}

Như thấy, dictionary được sắp xếp theo khóa.

Ví dụ

dic = {2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2 = {}
for i in sorted(dic):
    dic2[i] = dic[i]
print(dic2)

Kết quả

{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}

Giải thích từng dòng mã

  • Khai báo dictionary cần sắp xếp.
  • Khai báo dictionary rỗng để chứa cặp key-value đã sắp xếp.
  • sorted(dic) chứa tất cả khóa của dic theo thứ tự sắp xếp. Nó chỉ có khóa, không có cặp key-value. sorted(dic) sẽ là [1,2,3,5,8].
  • Với mỗi khóa theo thứ tự sắp xếp, thêm khóa và giá trị tương ứng vào dic2.
  • dic2 có tất cả cặp key-value theo thứ tự sắp xếp của khóa.

Phương pháp 2 – Sắp xếp dictionary theo value

Trong cách này, dictionary được sắp xếp theo thứ tự tăng dần của giá trị.

Đầu vào:

{2:90, 1: 100, 8: 3, 5: 67, 3: 5}

Đầu ra:

{8:3, 3:5, 5:67, 2:90, 1:100}

Như thấy, dictionary được sắp xếp theo giá trị.

  • Dùng sorted() và items() cùng nhau để sắp xếp dictionary theo value.
  • items() dùng để lấy các item (giá trị) của dictionary.
  • key=lambda x: x[1] là cơ chế sắp xếp dùng lambda function.
  • Điều này cho ta các cặp key-value sau đó chuyển thành dictionary bằng dict().

Ví dụ

dic = {2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2 = dict(sorted(dic.items(), key=lambda x: x[1]))
print(dic2)

Kết quả

{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}