Sắp xếp từ điển theo giá trị python giảm dần

Từ điển trong Python là tập hợp các mục lưu trữ dữ liệu dưới dạng cặp khóa-giá trị. Trong Trăn 3. 7 và các phiên bản mới hơn, từ điển được sắp xếp theo thứ tự chèn mục. Trong các phiên bản trước, chúng không có thứ tự

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

Sắp xếp từ điển bằng vòng lặp for

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 for. Đầu tiên, chúng ta sử dụng hàm sorted[] để sắp xếp thứ tự các giá trị của từ điển. Sau đó, chúng tôi lặp qua các giá trị đã sắp xếp, tìm khóa cho từng giá trị. Chúng tôi thêm các cặp khóa-giá trị này theo thứ tự đã sắp xếp vào một từ điển mới

Ghi chú. Sắp xếp không cho phép bạn sắp xếp lại từ điển tại chỗ. Chúng tôi đang viết các cặp theo thứ tự trong một từ điển hoàn toàn mới, trống rỗng

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 đã biết cách sắp xếp bằng vòng lặp, hãy xem xét một giải pháp thay thế phổ biến hơn sử dụng hàm sorted[]

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

Trước đây chúng ta đã sử dụng hàm sorted[] để 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ể truyền thêm một đối số cho hàm sorted[] như thế này. sorted[dict1, key=dict1.get]

Ở đây,

    Input: 
    dictionary = {'carl':40,'alan':2,'bob':1,'danny':3}

    Output:
    Ascending order is  {'alan': 2, 'bob': 1, 'carl':40], 'danny':3}
    Descending order is {'danny': 3, 'carl': 40, 'bob': 1, 'alan':2}
0 là một hàm được gọi trên từng phần tử trước khi các giá trị được so sánh để sắp xếp. Phương thức
    Input: 
    dictionary = {'carl':40,'alan':2,'bob':1,'danny':3}

    Output:
    Ascending order is  {'alan': 2, 'bob': 1, 'carl':40], 'danny':3}
    Descending order is {'danny': 3, 'carl': 40, 'bob': 1, 'alan':2}
1 trên các đối tượng từ điển trả về giá trị của khóa của từ điển

Biểu thức sorted[dict1, key=dict1.get] 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

Sử dụng hàm sorted[] đã giảm số lượng mã chúng ta phải viết khi sử dụng vòng lặp for. Tuy nhiên, chúng ta có thể kết hợp thêm hàm sorted[] với hàm for3 để có giải pháp sắp xếp từ điển theo giá trị ngắn gọn hơn

Sắp xếp từ điển Sử dụng toán tử Mô-đun và itemgetter[]

Mô-đun for4 bao gồm chức năng for3. 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ụ: hãy sử dụng for3 để tạo đối tượng có thể gọi trả về giá trị của bất kỳ từ điển nào có khóa là for7

Mọi từ điển đều có quyền truy cập vào phương thức for8. Hàm này trả về các cặp khóa-giá trị của từ điển dưới dạng danh sách các bộ. 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 for3 để lấy giá trị thứ hai của bộ dữ liệu i. e. giá trị của các khóa trong từ điển

Sau 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ị đó

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

Vì đối số

    Input: 
    dictionary = {'carl':40,'alan':2,'bob':1,'danny':3}

    Output:
    Ascending order is  {'alan': 2, 'bob': 1, 'carl':40], 'danny':3}
    Descending order is {'danny': 3, 'carl': 40, 'bob': 1, 'alan':2}
0 chấp nhận bất kỳ hàm 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 hàm ẩn danh hoặc không tên trong Python. Chúng ta có thể sử dụng các hàm lambda để lấy giá trị của một mục từ điển mà không cần phải nhập mô-đun for4 cho for3. Nếu muốn tìm hiểu thêm về lambda, bạn có thể đọc về chúng trong hướng dẫn của chúng tôi về Hàm Lambda trong Python

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

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ố

    Input: 
    dictionary = {'carl':40,'alan':2,'bob':1,'danny':3}

    Output:
    Ascending order is  {'alan': 2, 'bob': 1, 'carl':40], 'danny':3}
    Descending order is {'danny': 3, 'carl': 40, 'bob': 1, 'alan':2}
0 của sorted[]

Lưu ý rằng các phương pháp chúng ta đã 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 Python cũ hơn

Trả lại 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 giá trị, để giữ từ điển đã sắp xếp trong các phiên bản Python trước 3. 7, bạn phải sử dụng sorted[]5 - có sẵn trong mô-đun sorted[]6. Các đối tượng này là từ điển giữ thứ tự chèn

Đây là một ví dụ về sắp xếp và sử dụng sorted[]5

Phần kết luận

Hướng dẫn này cho thấy cách 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 vòng lặp for. Sau đó, chúng tôi đã cải thiện việc sắp xếp của mình bằng cách sử dụng hàm sorted[]. Chúng ta cũng đã thấy hàm for3 từ mô-đun for4 có thể làm cho giải pháp của chúng ta ngắn gọn hơn

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

Các biến thể của hàm sorted[] là phổ biến và đáng tin cậy nhất để sắp xếp từ điển theo giá trị

Báo cáo vấn đề. Viế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 khóa hoặc giá trị

Ví dụ

    Input: 
    dictionary = {'carl':40,'alan':2,'bob':1,'danny':3}

    Output:
    Ascending order is  {'alan': 2, 'bob': 1, 'carl':40], 'danny':3}
    Descending order is {'danny': 3, 'carl': 40, 'bob': 1, 'alan':2}

thuật toán

  1. Lấy từ điển
  2. Chuyển đổi nó trong một danh sách
  3. Bây giờ hãy sắp xếp danh sách theo thứ tự tăng dần hoặc giảm dần
  4. Chuyển đổi lại Danh sách đã sắp xếp thành từ điển
  5. Đầu ra in

Mã Python để sắp xếp từ điển theo thứ tự tăng dần và giảm dần

#you can take the input as integers also this'
#will work for that also for eg:{1:2,3:4,4:3,2:1,0:0}
y={'carl':40,'alan':2,'bob':1,'danny':3} 
                                         
l=list[y.items[]]   #convet the given dict. into list
#In Python Dictionary, items[] method is used to return the list
#with all dictionary keys with values.
l.sort[]            #sort the list
print['Ascending order is',l] #this print the sorted list 

l=list[y.items[]]
l.sort[reverse=True] #sort in reverse order
print['Descending order is',l]

dict=dict[l] # convert the list in dictionary 

print["Dictionary",dict] #the desired output is this sorted dictionary

đầu ra

Ascending order is [['alan', 2], ['bob', 1], ['carl', 40], ['danny', 3]]
Descending order is [['danny', 3], ['carl', 40], ['bob', 1], ['alan', 2]]
Dictionary {'bob': 1, 'carl': 40, 'alan': 2, 'danny': 3}

Giải thích mã

Trong phần này, chúng ta chỉ tìm hiểu cách sắp xếp từ điển theo khóa hoặc giá trị. Vì vậy, để làm điều này, cách tiếp cận tốt nhất là chuyển đổi toàn bộ từ điển thành một danh sách. Để chuyển đổi cái này, chúng tôi đã sử dụng cái này l=list[y. mặt hàng[]]

Một chức năng quan trọng ở đây là items[]. Cái này là cái gì?

Vì vậy, trong Từ điển Python, phương thức items[] được sử dụng để trả về danh sách với tất cả các khóa từ điển có giá trị

Bây giờ sau đó, chúng tôi sử dụng chức năng Sắp xếp i. e. tôi. loại[]

Việc sắp xếp danh sách và sau một điều quan trọng là chuyển đổi lại danh sách thành Từ điển bằng dict=dict[l]

Chủ Đề