Hướng dẫn python sort dictionary return dictionary - python sort từ điển trả về từ điển

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 for. Đầu tiên, chúng tôi sử dụng hàm sorted[] để đặ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 chức năng sorted[].

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 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ể chuyển thêm một đối số cho hàm sorted[] như thế này:

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

Ở đây,

{1: 1, 3: 4, 2: 9}
3 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
{1: 1, 3: 4, 2: 9}
4 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

{1: 1, 3: 4, 2: 9}
2 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:

dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}

Sử dụng hàm sorted[] đã giảm lượng mã chúng tôi phải viết khi sử dụng các vòng for. Tuy nhiên, chúng ta có thể kết hợp thêm chức năng sorted[] với hàm

{1: 1, 3: 4, 2: 9}
9 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

dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}
0 bao gồm hàm
{1: 1, 3: 4, 2: 9}
9. 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

{1: 1, 3: 4, 2: 9}
9 để 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à
dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}
3:

import operator

dict1 = {1: 1, 2: 9}
get_item_with_key_2 = operator.itemgetter[2]

print[get_item_with_key_2[dict1]]  # 9

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

dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}
4. 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
{1: 1, 3: 4, 2: 9}
9 để 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ị đó:

import operator

dict1 = {1: 1, 2: 9, 3: 4}
sorted_tuples = sorted[dict1.items[], key=operator.itemgetter[1]]
print[sorted_tuples]  # [[1, 1], [3, 4], [2, 9]]
sorted_dict = {k: v for k, v in sorted_tuples}

print[sorted_dict] # {1: 1, 3: 4, 2: 9}

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ố

{1: 1, 3: 4, 2: 9}
3 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

dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}
0 cho
{1: 1, 3: 4, 2: 9}
9. 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ó!

Hãy sắp xếp một từ điển theo các giá trị bằng hàm Lambda trong đối số

{1: 1, 3: 4, 2: 9}
3 của sorted[]:

dict1 = {1: 1, 2: 9, 3: 4}
sorted_tuples = sorted[dict1.items[], key=lambda item: item[1]]
print[sorted_tuples]  # [[1, 1], [3, 4], [2, 9]]
sorted_dict = {k: v for k, v in sorted_tuples}

print[sorted_dict]  # {1: 1, 3: 4, 2: 9}

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

dict1 = {1: 1, 2: 9}
get_item_with_key_2 = operator.itemgetter[2]

print[get_item_with_key_2[dict1]]  # 9
1 - có sẵn trong mô -đun
import operator

dict1 = {1: 1, 2: 9}
get_item_with_key_2 = operator.itemgetter[2]

print[get_item_with_key_2[dict1]]  # 9
2. 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

dict1 = {1: 1, 2: 9}
get_item_with_key_2 = operator.itemgetter[2]

print[get_item_with_key_2[dict1]]  # 9
1:

import operator
from collections import OrderedDict

dict1 = {1: 1, 2: 9, 3: 4}
sorted_tuples = sorted[dict1.items[], key=operator.itemgetter[1]]
print[sorted_tuples]  # [[1, 1], [3, 4], [2, 9]]

sorted_dict = OrderedDict[]
for k, v in sorted_tuples:
    sorted_dict[k] = v

print[sorted_dict]  # {1: 1, 3: 4, 2: 9}

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 sorted[]. Chúng tôi cũng đã thấy chức năng

{1: 1, 3: 4, 2: 9}
9 từ mô -đun
dict1 = {1: 1, 2: 9, 3: 4}
sorted_dict = {}
sorted_keys = sorted[dict1, key=dict1.get]  # [1, 3, 2]

for w in sorted_keys:
    sorted_dict[w] = dict1[w]

print[sorted_dict] # {1: 1, 3: 4, 2: 9}
0 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 sorted[] 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 cách nào để trả lại một từ điển được sắp xếp trong Python?

Trong Python, hàm itemgetter [] trả về một đối tượng có thể gọi được từ toán hạng của nó. Sử dụng hàm itemgetter [] với hàm sort [] sẽ trả về các mục được sắp xếp trong từ điển theo giá trị.Using the itemgetter[] function with the sorted[] function will return sorted items in the dictionary by value.

Bạn có thể sắp xếp từ điển trong Python?

Vâng, kể từ Python 3.7, từ điển cũng nhớ thứ tự của các mục được chèn.Do đó, chúng tôi cũng có thể sắp xếp từ điển bằng cách sử dụng hàm Sắp xếp [] tích hợp của Python.Cũng giống như với các phép lặp khác, chúng ta có thể sắp xếp từ điển dựa trên các tiêu chí khác nhau tùy thuộc vào đối số chính của hàm Sắp xếp [].we are also able to sort dictionaries using python's built-in sorted[] function. Just like with other iterables, we can sort dictionaries based on different criteria depending on the key argument of the sorted[] function.

Làm thế nào để tôi đảo ngược một từ điển được 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.Use the reverse parameter in sorted[] to sort the dictionary in reverse order, based on the second argument.

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 đó.Xem bài viết sau đây để biết thêm thông tin.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. See the following article for more information.

Bài Viết Liên Quan

Chủ Đề