Hướng dẫn how to sort a dictionary in descending order in python - cách sắp xếp từ điển theo thứ tự giảm dần trong python

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:49 (UTC/GMT +8 giờ)

Từ điển Python: Bài tập-1 với giải pháp

Viết một chương trình Python để sắp xếp (tăng dần và giảm dần) một từ điển theo giá trị.

Giải pháp mẫu-1:

Mã Python:

import operator
d = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
print('Original dictionary : ',d)
sorted_d = sorted(d.items(), key=operator.itemgetter(1))
print('Dictionary in ascending order by value : ',sorted_d)
sorted_d = dict( sorted(d.items(), key=operator.itemgetter(1),reverse=True))
print('Dictionary in descending order by value : ',sorted_d)

Đầu ra mẫu:

Original dictionary :  {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
Dictionary in ascending order by value :  [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
Dictionary in descending order by value :  {3: 4, 4: 3, 1: 2, 2: 1, 0: 0}

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Giải pháp mẫu-2:

Lưu ý: Giá trị từ điển phải cùng loại.

  • Sử dụng Dict.Items () để có được danh sách các cặp Tuple từ D và sắp xếp nó bằng hàm Lambda và Sắp xếp ().
  • Sử dụng Dict () để chuyển đổi danh sách được sắp xếp trở lại từ điển.
  • Sử dụng tham số ngược trong Sắp xếp () để sắp xếp từ điển theo thứ tự ngược lại, dựa trên đối số thứ hai.

Mã Python:

def sort_dict_by_value(d, reverse = False):
  return dict(sorted(d.items(), key = lambda x: x[1], reverse = reverse))
print("Original dictionary elements:")
colors = {'Red': 1, 'Green': 3, 'Black': 5, 'White': 2, 'Pink': 4}
print(colors)
print("\nSort (ascending) the said dictionary elements by value:")
print(sort_dict_by_value(colors))
print("\nSort (descending) the said dictionary elements by value:")
print(sort_dict_by_value(colors, True))

Đầu ra mẫu:

Original dictionary elements:
{'Red': 1, 'Green': 3, 'Black': 5, 'White': 2, 'Pink': 4}

Sort (ascending) the said dictionary elements by value:
{'Red': 1, 'White': 2, 'Green': 3, 'Pink': 4, 'Black': 5}

Sort (descending) the said dictionary elements by value:
{'Black': 5, 'Pink': 4, 'Green': 3, 'White': 2, 'Red': 1}

Flowchart:

Hướng dẫn how to sort a dictionary in descending order in python - cách sắp xếp từ điển theo thứ tự giảm dần trong python

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Giải pháp mẫu-2:

Lưu ý: Giá trị từ điển phải cùng loại.

Sử dụng Dict.Items () để có được danh sách các cặp Tuple từ D và sắp xếp nó bằng hàm Lambda và Sắp xếp (). Python Dictionary Exercise Home.
Next: Write a Python program to add a key to a dictionary.

Sử dụng Dict () để chuyển đổi danh sách được sắp xếp trở lại từ điển.

Sử dụng tham số ngược trong Sắp xếp () để sắp xếp từ điển theo thứ tự ngược lại, dựa trên đối số thứ hai.

Trình chỉnh sửa mã Python:

Từ điển không có bất kỳ thứ tự vốn có. Hoặc, đúng hơn, thứ tự vốn có của họ là "tùy ý nhưng không ngẫu nhiên", vì vậy nó không làm bạn tốt.

Trong các điều khoản khác nhau, d của bạn và e của bạn sẽ chính xác từ điển tương đương.

Những gì bạn có thể làm ở đây là sử dụng OrderedDict:

from collections import OrderedDict
d = { '123': { 'key1': 3, 'key2': 11, 'key3': 3 },
      '124': { 'key1': 6, 'key2': 56, 'key3': 6 },
      '125': { 'key1': 7, 'key2': 44, 'key3': 9 },
    }
d_ascending = OrderedDict(sorted(d.items(), key=lambda kv: kv[1]['key3']))
d_descending = OrderedDict(sorted(d.items(), 
                                  key=lambda kv: kv[1]['key3'], reverse=True))

Bản gốc d có một số thứ tự tùy ý.

Original dictionary :  {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
Dictionary in ascending order by value :  [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
Dictionary in descending order by value :  {3: 4, 4: 3, 1: 2, 2: 1, 0: 0}
1 có thứ tự bạn nghĩ rằng bạn có trong d ban đầu của bạn, nhưng không. Và
Original dictionary :  {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
Dictionary in ascending order by value :  [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]
Dictionary in descending order by value :  {3: 4, 4: 3, 1: 2, 2: 1, 0: 0}
3 có thứ tự bạn muốn cho e của bạn.


Nếu bạn không thực sự cần sử dụng e như một từ điển, nhưng bạn chỉ muốn có thể lặp lại các yếu tố của d theo một thứ tự cụ thể, bạn có thể đơn giản hóa điều này:

for key, value in sorted(d.items(), key=lambda kv: kv[1]['key3'], reverse=True):
    do_something_with(key, value)

Nếu bạn muốn duy trì một từ điển theo thứ tự được sắp xếp theo bất kỳ thay đổi nào, thay vì OrderedDict, bạn muốn một số loại từ điển được sắp xếp. Có một số tùy chọn có sẵn mà bạn có thể tìm thấy trên PYPI, một số được triển khai trên đỉnh cây, các tùy chọn khác trên đỉnh OrderedDict tự sắp xếp lại khi cần thiết, v.v.

Làm thế nào để bạn sắp xếp một từ điển bằng cách giảm giá trị trong Python?

Sắp xếp một chế độ theo giá trị giảm dần bằng cách sử dụng danh sách hiểu. Cách nhanh nhất là lặp lại các cặp giá trị khóa của dict hiện tại của bạn và cuộc gọi được sắp xếp vượt qua các giá trị từ điển và cài đặt đảo ngược = true. Nếu bạn đang sử dụng Python 3.7, Dict s thông thường được đặt hàng theo mặc định.iterate over the key-value pairs of your current dict and call sorted passing the dictionary values and setting reversed=True . If you are using Python 3.7, regular dict s are ordered by default.

Làm thế nào để bạn sắp xếp các giá trị giảm dần trong một từ điển?

Đảo ngược với giá trị của True sẽ sắp xếp từ điển được sắp xếp theo thứ tự giảm dần.Bạn có thể thấy đầu ra bị đảo ngược vì chúng tôi đã chuyển ngược lại = true với phương thức Sắp xếp ().Nếu bạn không đặt ngược lại hoặc bạn đặt giá trị của nó thành sai, từ điển sẽ được sắp xếp theo thứ tự tăng dần.Đó là mặc định. will arrange the sorted dictionary in descending order. You can see the output is reversed because we passed reverse=True to the sorted() method. If you don't set reverse at all or you set its value to false, the dictionary will be arranged in ascending order. That's the default.

Làm thế nào để bạn sắp xếp một từ điển theo thứ tự giảm dần theo khóa?

Vì vậy, trong từ điển Python, phương thức Item () được sử dụng để trả về danh sách với tất cả các khóa từ điển có giá trị.Vì vậy, sau đó, chúng tôi sẽ nhận được từ điển được sắp xếp theo thứ tự tăng dần.Sử dụng L.Sắp xếp (đảo ngược = true) Bạn sẽ nhận được từ điển được sắp xếp theo thứ tự giảm dần.

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

Sử dụng hàm Sắp xếp () Hàm quan trọng mà bạn sẽ sử dụng để sắp xếp từ điển là hàm Sắp xếp () tích hợp.Hàm này lấy một điều đáng tin cậy làm đối số chính, với hai đối số chỉ từ khóa tùy chọn, một hàm khóa và giá trị boolean ngược.