Hướng dẫn write a python program to sort a dictionary by value - viết một chương trình python để sắp xếp từ điển theo giá trị

Ví dụ 1: Sắp xếp từ điển dựa trên các giá trị

dt = {5:4, 1:6, 6:3}

sorted_dt = {key: value for key, value in sorted(dt.items(), key=lambda item: item[1])}

print(sorted_dt)

Đầu ra

{6: 3, 5: 4, 1: 6}
  • Ở đây,
    {6: 3, 5: 4, 1: 6}
    5 trả về các giá trị của từng khóa: cặp giá trị.
  • Từ mỗi khóa: cặp giá trị của
    {6: 3, 5: 4, 1: 6}
    6,
    {6: 3, 5: 4, 1: 6}
    7 sắp xếp các mục dựa trên các giá trị.

Tìm hiểu thêm về

{6: 3, 5: 4, 1: 6}
7 và khóa tham số của nó tại python sort ().


Ví dụ 2: Chỉ sắp xếp các giá trị

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)

Đầu ra

[3, 4, 6]

Ở đây,

{6: 3, 5: 4, 1: 6}
5 trả về các giá trị của từng khóa: cặp giá trị.

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:51: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 write a python program to sort a dictionary by value - viết một chương trình python để sắp xếp từ điển theo giá trị

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.

Giới thiệu

Một từ điển trong Python là một tập hợp các mục lưu trữ dữ liệu dưới dạng các cặp giá trị khóa. Trong Python 3.7 và các phiên bản sau này, từ điển được sắp xếp theo thứ tự chèn vật phẩm. Trong các phiên bản trước, họ đã không được đặt hàng.

Trong bài viết này, chúng ta sẽ xem xét làm thế nào chúng ta có thể sắp xếp một từ điển trên cơ sở các giá trị mà chúng chứa.

Sắp xếp từ điển bằng cách sử dụng một vòng lặp

Chúng ta có thể sắp xếp một từ điển với sự trợ giúp của vòng lặp

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
2. Đầu tiên, chúng tôi sử dụng hàm
{6: 3, 5: 4, 1: 6}
7 để đặt hàng các giá trị của từ điển. Sau đó, chúng tôi lặp qua các giá trị được sắp xếp, tìm các khóa cho từng giá trị. Chúng tôi thêm các cặp giá trị khóa này theo thứ tự được sắp xếp vào một từ điển mới.

Lưu ý: Sắp xếp không cho phép bạn đặt hàng lại từ điển tại chỗ. Chúng tôi đang viết các cặp được đặt hàng trong một từ điển hoàn toàn mới, trống rỗng. Sorting does not allow you to re-order the dictionary in place. We are writing the ordered pairs in a completely new, empty dictionary.

dict1 = {1: 1, 2: 9, 3: 4}
sorted_values = sorted(dict1.values()) # Sort the values
sorted_dict = {}

for i in sorted_values:
    for k in dict1.keys():
        if dict1[k] == i:
            sorted_dict[k] = dict1[k]

print(sorted_dict)

Nếu bạn chạy cái này với trình thông dịch Python, bạn sẽ thấy:

{1: 1, 3: 4, 2: 9}

Bây giờ chúng ta đã thấy cách sắp xếp với các vòng lặp, chúng ta hãy xem xét một giải pháp thay thế phổ biến hơn sử dụng hàm

{6: 3, 5: 4, 1: 6}
7.

Sắp xếp từ điển bằng cách sử dụng hàm Sắp xếp ()

Trước đây chúng tôi đã sử dụng hàm

{6: 3, 5: 4, 1: 6}
7 để sắp xếp các giá trị của một mảng. Khi sắp xếp từ điển, chúng ta có thể chuyển thêm một đối số cho hàm
{6: 3, 5: 4, 1: 6}
7 như thế này:
dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
7.

Ở đây,

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
8 là một hàm được gọi trên mỗi phần tử trước khi các giá trị được so sánh để sắp xếp. Phương thức
dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
9 trên các đối tượng từ điển trả về giá trị của khóa từ điển.

Biểu thức

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
7 sẽ trả về danh sách các khóa có giá trị được sắp xếp theo thứ tự. Từ đó, chúng ta có thể tạo một từ điển mới, được sắp xếp:

{6: 3, 5: 4, 1: 6}
0

Sử dụng hàm

{6: 3, 5: 4, 1: 6}
7 đã giảm lượng mã chúng tôi phải viết khi sử dụng các vòng
dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
2. Tuy nhiên, chúng ta có thể kết hợp thêm chức năng
{6: 3, 5: 4, 1: 6}
7 với hàm
[3, 4, 6]
4 cho một giải pháp ngắn gọn hơn để sắp xếp từ điển theo các giá trị.

Sắp xếp từ điển bằng mô -đun toán tử và itemgetter ()

Mô -đun

[3, 4, 6]
5 bao gồm hàm
[3, 4, 6]
4. Hàm này trả về một đối tượng có thể gọi được trả về một mục từ một đối tượng.

Ví dụ: chúng ta hãy sử dụng

[3, 4, 6]
4 để tạo một đối tượng có thể gọi được trả về giá trị của bất kỳ từ điển nào với khóa là
[3, 4, 6]
8:

{6: 3, 5: 4, 1: 6}
1

Mỗi từ điển đều có quyền truy cập vào phương pháp

[3, 4, 6]
9. Hàm này trả về các cặp giá trị khóa của một từ điển như một danh sách các bộ dữ liệu. Chúng ta có thể sắp xếp danh sách các bộ dữ liệu bằng cách sử dụng hàm
[3, 4, 6]
4 để kéo giá trị thứ hai của bộ tuple, tức là giá trị của các khóa trong từ điển.

Khi nó được sắp xếp, chúng ta có thể tạo một từ điển dựa trên các giá trị đó:

{6: 3, 5: 4, 1: 6}
2

Với ít nỗ lực hơn, chúng tôi có một từ điển được sắp xếp theo các giá trị!

Vì đối số

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
8 chấp nhận bất kỳ chức năng nào, chúng ta có thể sử dụng các hàm Lambda để trả về các giá trị từ điển để chúng có thể được sắp xếp. Hãy xem làm thế nào.

Sắp xếp từ điển bằng hàm Lambda

Các hàm Lambda là các chức năng ẩn danh, hoặc không tên, trong Python. Chúng ta có thể sử dụng các hàm Lambda để nhận giá trị của một mục từ điển mà không phải nhập mô -đun

[3, 4, 6]
5 cho
[3, 4, 6]
4. Nếu bạn muốn tìm hiểu thêm về Lambdas, bạn có thể đọc về chúng trong hướng dẫn của chúng tôi về các chức năng Lambda trong Python.

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

Chúng ta hãy sắp xếp một từ điển theo các giá trị bằng cách sử dụng hàm Lambda trong đối số

dt = {5:4, 1:6, 6:3}

sorted_dt_value = sorted(dt.values())
print(sorted_dt_value)
8 của
{6: 3, 5: 4, 1: 6}
7:

{6: 3, 5: 4, 1: 6}
3

Lưu ý rằng các phương pháp chúng tôi đã thảo luận cho đến nay chỉ hoạt động với Python 3.7 trở lên. Hãy xem những gì chúng ta có thể làm cho các phiên bản trước của Python.

Trả về một từ điển mới với các giá trị được sắp xếp

Sau khi sắp xếp từ điển theo các giá trị, để giữ một từ điển được sắp xếp trong các phiên bản Python trước 3.7, bạn phải sử dụng

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)

6 - có sẵn trong mô -đun
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)

7. Những đối tượng này là từ điển giữ thứ tự chèn.

Đây là một ví dụ về việc sắp xếp và sử dụng

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)

6:

{6: 3, 5: 4, 1: 6}
4

Sự kết luận

Hướng dẫn này cho thấy làm thế nào một từ điển có thể được sắp xếp dựa trên các giá trị của nó. Đầu tiên chúng tôi sắp xếp một từ điển bằng cách sử dụng hai cho các vòng lặp. Sau đó, chúng tôi đã cải thiện việc sắp xếp của chúng tôi bằng cách sử dụng chức năng

{6: 3, 5: 4, 1: 6}
7. Chúng tôi cũng đã thấy chức năng
[3, 4, 6]
4 từ mô -đun
[3, 4, 6]
5 có thể làm cho giải pháp của chúng tôi cô đọng hơn.

Cuối cùng, chúng tôi đã điều chỉnh giải pháp của mình để làm việc trên các phiên bản Python thấp hơn 3,7.

Biến thể của hàm

{6: 3, 5: 4, 1: 6}
7 là phổ biến nhất và đáng tin cậy nhất để sắp xếp từ điển theo các giá trị.

Làm thế nào tôi có thể sắp xếp một từ điển theo các giá trị trong Python?

Để sắp xếp từ điển theo giá trị trong Python, bạn có thể sử dụng hàm Sắp xếp (). Hàm Sắp xếp () của Python có thể được sử dụng để sắp xếp từ điển theo khóa, cho phép phương thức sắp xếp tùy chỉnh. Sắp xếp () lấy ba đối số: đối tượng, khóa và đảo ngược. Từ điển là cấu trúc dữ liệu không theo thứ tự.use the sorted() function. Python's sorted() function can be used to sort dictionaries by key, which allows for a custom sorting method. sorted() takes three arguments: object, key, and reverse. Dictionaries are unordered data structures.

Làm thế nào để bạn sắp xếp từ điển theo giá trị từ điển?

Để sắp xếp một danh sách các từ điển theo giá trị của khóa cụ thể, chỉ định tham số khóa của phương thức Sắp xếp () hoặc hàm Sắp xếp ().Bằng cách chỉ định một hàm được áp dụng cho từng phần tử của danh sách, nó được sắp xếp theo kết quả của hàm đó.specify the key parameter of the sort() method or the sorted() function. By specifying a function to be applied to each element of the list, it is sorted according to the result of that function.

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

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.

Chúng ta có thể sắp xếp các giá trị từ điển không?

Không thể sắp xếp một từ điển, chỉ để có được một đại diện của một từ điển được sắp xếp.Từ điển vốn đã không có trật tự, nhưng các loại khác, chẳng hạn như danh sách và bộ dữ liệu, thì không.Vì vậy, bạn cần một loại dữ liệu được đặt hàng để thể hiện các giá trị được sắp xếp, đây sẽ là một danh sách có lẽ là một danh sách các bộ dữ liệu., only to get a representation of a dictionary that is sorted. Dictionaries are inherently orderless, but other types, such as lists and tuples, are not. So you need an ordered data type to represent sorted values, which will be a list—probably a list of tuples.