Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để sắp xếp một từ điển trong Python?

Từ điển là một cấu trúc dữ liệu bao gồm các cặp khóa và giá trị. Chúng tôi có thể sắp xếp từ điển bằng hai tiêu chí -

Sắp xếp theo khóa - Từ điển được sắp xếp theo thứ tự tăng dần của các khóa của nó. Các giá trị không được quan tâm.

Sắp xếp theo giá trị - Từ điển đượ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 từ điển theo khóa

Theo cách tiếp cận này, từ điển được sắp xếp theo thứ tự tăng dần của các 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ư hình trên, chúng ta có thể thấy từ điển được sắp xếp theo các khóa của nó.

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)

Đầu ra

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

Giải thích dòng mã khôn ngoan

  • Khai báo một từ điển sẽ được sắp xếp

  • Khai báo một từ điển trống nơi các cặp giá trị khóa được sắp xếp sẽ được thêm vào

  • đã sắp xếp (dic) có tất cả các khóa của dic theo thứ tự được sắp xếp. Nó chỉ có các khóa chứ không phải các cặp giá trị khóa. đã sắp xếp (dic) sẽ có [1,2,3,5,8]

  • Đối với mỗi khóa theo thứ tự đã sắp xếp, hãy thêm khóa và giá trị tương ứng vào dic2.

  • dic2 có tất cả các cặp khóa-giá trị theo thứ tự khóa được sắp xếp

Phương pháp 2 - Sắp xếp từ điển theo giá trị

Theo cách tiếp cận này, từ điển được sắp xếp theo thứ tự giá trị tăng dần.

Đầ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ư hình trên, chúng ta có thể thấy từ điển được sắp xếp theo các giá trị của nó.

  • Chúng tôi sử dụng các phương thức sorted () và items () cùng nhau để sắp xếp từ điển theo giá trị.

  • Các mục () được sử dụng để truy xuất các mục hoặc giá trị của từ điển.

  • Khóa =lambda x:x [1] là cơ chế sắp xếp sử dụng hàm lambda.

  • Điều này cung cấp cho chúng tôi các cặp giá trị khóa ehich sau đó được chuyển đổi thành một từ điển bằng cách sử dụ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)

Đầu ra

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