Python sắp xếp lại từ điển theo giá trị

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 thi chương trình nói trên


Dung dịch mẫu-2

Ghi chú. Giá trị từ điển phải cùng loại

  • sử dụng chính tả. items[] để lấy danh sách các cặp tuple từ d và sắp xếp nó bằng hàm lambda và sorted[]
  • Sử dụng dict[] để chuyển đổi danh sách đã sắp xếp thành từ điển
  • Sử dụng tham số đảo ngược trong sorted[] để sắp xếp từ điển theo thứ tự đảo ngược, 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}

Sơ đồ


Trực quan hóa việc 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 thi chương trình nói trên


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

Có một cách khác để giải quyết giải pháp này?

Trước. Trang chủ bài tập từ điển Python
Kế tiếp. Viết chương trình Python để thêm khóa vào từ điển

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

con trăn. Lời khuyên trong ngày

lớp liệt kê

Đây là một cách tiếp cận sang trọng khác từ Python, không có ý định chơi chữ. Lớp enum của Python sẽ cho phép bạn tạo các thành viên đối tượng enum với các giá trị không đổi và duy nhất mà sau đó có thể được liệt kê, so sánh hoặc sử dụng để nhận dạng

Để sắp xếp từ điển theo giá trị trong Python, bạn có thể sử dụng hàm sorted[]. Hàm sorted[] 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. sorted[] có 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 có thứ tự. Họ sử dụng cấu trúc ánh xạ để lưu trữ dữ liệu. Từ điển ánh xạ các khóa thành các giá trị, tạo các cặp chứa dữ liệu liên quan

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Tên đầu tiên

Họ

E-mail

Số điện thoại


Bằng cách tiếp tục, bạn đồng ý với Điều khoản dịch vụ và Chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận các ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email

Sử dụng phương thức sorted[] của Python, bạn có thể sắp xếp nội dung của từ điển theo giá trị. Chẳng hạn, để xếp hạng mức độ phổ biến của các món trong thực đơn cà phê hoặc liệt kê các món đó theo thứ tự bảng chữ cái, bạn có thể sử dụng phương thức sorted[] của Python. Hướng dẫn này sẽ thảo luận về cách hoạt động của phương thức sorted[] và cách bạn có thể sử dụng nó để sắp xếp nội dung của từ điển.  

Python sắp xếp[] Cập nhật

Chức năng sorted[] tích hợp sẵn của Python có thể được sử dụng để sắp xếp các đối tượng có thể lặp lại theo một khóa, chẳng hạn như danh sách, bộ dữ liệu và từ điển. Hàm sorted[] sắp xếp các mục của đối tượng lặp được chỉ định và tạo một đối tượng mới với các giá trị mới được sắp xếp

Đây là cú pháp của phương thức sorted[]

đã sắp xếp [đối tượng, khóa, đảo ngược]

Phương thức nhận ba tham số

  • mục tiêu. đối tượng có thể lặp lại mà bạn muốn sắp xếp [bắt buộc]
  • Chìa khóa. chức năng cho phép bạn thực hiện các thao tác sắp xếp tùy chỉnh [tùy chọn]
  • đảo ngược. chỉ định liệu đối tượng có được sắp xếp theo thứ tự giảm dần hay không [tùy chọn]

Như bạn có thể thấy,

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
3 là tham số bắt buộc duy nhất. Nếu bạn quyết định không sử dụng các tham số
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
4 và
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
5 tùy chọn, Python sẽ tự động sắp xếp đối tượng theo thứ tự tăng dần

Ghi chú. Career Karma đã viết một hướng dẫn đầy đủ về các phương thức sort[] và sort[] trong Python. Nếu bạn đang muốn tìm hiểu thêm về phương thức này và tham số

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
6, hãy xem hướng dẫn Python sort[] của chúng tôi

Hãy xem qua một ví dụ nhanh để minh họa cách thức hoạt động của phương thức sorted[].  

» THÊM.   Lỗi loại Python. Đối tượng ‘float’ không thể hiểu là số nguyên Giải pháp

Giả sử rằng chúng tôi đang điều hành một quán cà phê và chúng tôi muốn truy xuất danh sách theo thứ tự bảng chữ cái gồm ______2_______7 khách hàng [trung thành] của chúng tôi. Chúng tôi đã có danh sách khách hàng, nhưng nó được sắp xếp theo ngày đăng ký. Chúng tôi có thể sử dụng đoạn mã sau để sắp xếp danh sách của mình

customers = ['Kaley Fernandez', 'Darius Rowland', 'Isaac Borthwick',  'Alexandria Kidd']
sorted_customers = sorted[customers]
print[sorted_customers]

Mã của chúng tôi sắp xếp mảng

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
8 và trả về như sau

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
9

Ở dòng đầu tiên của mã, chúng tôi khai báo một danh sách lưu tên khách hàng của chúng tôi; . khách hàng. Sau đó, chúng tôi sử dụng phương pháp sorted[] để sắp xếp danh sách tên khách hàng theo thứ tự tăng dần; .

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
1. Cuối cùng, chúng tôi in danh sách vừa được sắp xếp ra bàn điều khiển bằng hàm
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
2

Sắp xếp từ điển theo giá trị

Giả sử bạn có một từ điển và bạn muốn sắp xếp nó theo các cặp khóa-giá trị. Bạn có thể làm điều này bằng cách sử dụng hai chức năng cùng nhau.

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
3và sorted[].  

Hàm

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
3 cho phép bạn truy xuất các mục trong từ điển. Chúng ta có thể sử dụng hàm này kết hợp với hàm sorted[] và tham số tùy chỉnh
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
6 để sắp xếp từ điển theo giá trị. Xét hai ví dụ sau

ví dụ 1. Sắp xếp theo thứ tự giảm dần

Hãy trở lại quán cà phê. Giả sử chúng ta có một từ điển lưu trữ các mặt hàng trong menu cà phê cũng như số lượng từng mặt hàng được đặt hàng trong tháng trước. Chúng tôi muốn xem loại cà phê phổ biến nhất trong tháng trước, vì vậy chúng tôi quyết định sắp xếp từ điển thứ tự theo thứ tự giá trị giảm dần

Đây là một chương trình chúng ta có thể sử dụng để sắp xếp nội dung của từ điển theo giá trị

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]

Mã của chúng tôi trả về như sau

» THÊM.   Lỗi chỉ mục Python. danh sách chỉ mục gán nằm ngoài phạm vi Giải pháp

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
8

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
9

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
0

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
1

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
2

Có rất nhiều thứ đang diễn ra trong mã của chúng ta, vì vậy hãy chia nhỏ nó ra.  

Khi bắt đầu mã của chúng tôi, chúng tôi xác định một từ điển có tên là

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
3 lưu trữ tên của các loại cà phê dưới dạng khóa và số lượng được bán dưới dạng giá trị

Sau đó, chúng tôi sử dụng phương pháp sorted[] để sắp xếp từ điển

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
3 theo giá trị. Dưới đây là bảng phân tích về cách chúng tôi sử dụng phương pháp sorted[]

"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "

Venus, Kỹ sư phần mềm tại Rockbot

Find Your Bootcamp Match

Tham sốVăn bảnMô tảđơn hàng đối tượng. items[] Đề cập đến tất cả các giá trị trong từ điển "đơn đặt hàng" của chúng tôi. Nếu chúng tôi chỉ sử dụng "đơn đặt hàng", chúng tôi sẽ phải tham chiếu vị trí chỉ mục của mặt hàng để nhận giá trị riêng lẻ của nó. Trong khi đó nếu chúng ta sử dụng các đơn đặt hàng. items[], một danh sách có thể lặp lại với các mục trong danh sách được tạo. keykey=lambda x. x[1]Một cơ chế sắp xếp cho phép chúng tôi sắp xếp từ điển của mình theo giá trị. Đây là một ví dụ về hàm Lambda, là một hàm không có tên. reversereverse=TrueBiểu thị rằng chúng tôi muốn dữ liệu của mình được sắp xếp theo thứ tự giảm dần

Cuối cùng, chúng tôi tạo một vòng lặp

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
7 lặp qua từng mục được tạo trong phương pháp
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
8 của chúng tôi và in ra cả tên khóa và giá trị của nó, được sắp xếp theo thứ tự mà chúng tôi đã chỉ định trong hàm
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
8

ví dụ 2. Sắp xếp tăng dần

Tương tự, nếu chúng ta muốn tìm ra loại đồ uống ít phổ biến nhất được bán tại quán cà phê của mình, chúng ta có thể sử dụng mã tương tự như trên nhưng không có tham số sorted[]0. Đây là một ví dụ về mã cho điều này

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]

Khi chúng tôi chạy mã của mình, các giá trị sau được trả về

» THÊM.   Python Median[] - Hướng dẫn thống kê Python

sorted[]1

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
1

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
0

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
9

sorted[]5

Như bạn có thể thấy, mã của chúng tôi trả về một danh sách các mặt hàng được sắp xếp theo thứ tự tăng dần, dựa trên số lượng từng mặt hàng được đặt hàng trong tháng trước

Danh sách hiểu

Ngoài ra, chúng ta có thể sử dụng khả năng hiểu danh sách để sắp xếp nội dung từ điển theo giá trị. Hiểu danh sách là một kỹ thuật ngắn gọn để tạo danh sách trong Python và có thể tiết kiệm dung lượng nếu bạn đang tạo các phương thức sắp xếp phức tạp hơn

Đây là mã chúng tôi sẽ sử dụng để sắp xếp các đơn đặt hàng cà phê của mình theo thứ tự tăng dần theo số lượng của mỗi loại cà phê được đặt hàng bằng cách sử dụng tính năng hiểu danh sách

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]

Khi chúng tôi chạy mã của mình, phản hồi sau được trả về

sorted[]1

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
1

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
0

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1]]

for i in sort_orders:
	print[i[0], i[1]]
9

sorted[]5

Kết quả của mã của chúng tôi giống như ví dụ trên của chúng tôi, nơi chúng tôi sắp xếp nội dung của danh sách

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
3 theo thứ tự tăng dần. Nhưng thay vì xác định một biến sorted[]2 và tạo một vòng lặp
orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print[key, value] for [key, value] in sorted[orders.items[], key=lambda x: x[1]]
7 riêng biệt để lặp qua danh sách đã sắp xếp, chúng tôi đã tạo một danh sách bằng cách sử dụng kỹ thuật hiểu danh sách

Khả năng hiểu danh sách mà chúng tôi đã tạo ở trên sắp xếp từng mục trong danh sách của chúng tôi theo thứ tự tăng dần, sau đó in ra khóa và giá trị của từng mục từ điển ra bảng điều khiển

Phần kết luận

Khi bạn đang làm việc với từ điển trong Python, việc sắp xếp từ điển theo giá trị là một thao tác phổ biến. Phương pháp sorted[] cho phép bạn sắp xếp một tập hợp dữ liệu dựa trên nhu cầu của bạn

Hướng dẫn này đã thảo luận, cung cấp các ví dụ, cách sử dụng phương thức sorted[] để sắp xếp từ điển theo giá trị trong Python, bao gồm cách sử dụng tham số

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted[orders.items[], key=lambda x: x[1], reverse=True]

for i in sort_orders:
	print[i[0], i[1]]
6và sorted[]7.  

Bây giờ bạn đã sẵn sàng để bắt đầu sắp xếp từ điển theo giá trị như một chuyên gia Python



Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

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

Để sắp xếp từ điển theo giá trị trong Python bạn có thể sử dụng hàm sorted[] . Hàm sorted[] 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. sorted[] nhận 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 có thứ tự.

Bạn có thể sắp xếp lại từ điển bằng Python không?

Chà, kể từ python 3. 7, từ điển cũng nhớ thứ tự các mục được chèn. Do đó chúng ta cũng có thể sắp xếp từ điển bằng cách sử dụng hàm sorted[] tích hợp sẵn của python . Cũng giống như các iterable 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 sorted[].

Làm cách nào để sắp xếp từ điển theo giá trị trong Python mà không cần chức năng sắp xếp?

Làm cách nào để sắp xếp từ điển theo giá trị trong Python? .
Sử dụng vòng lặp for
Sử dụng hàm sorted[]
Sử dụng Hàm Lambda
Sử dụng từ điển. item[] Phương thức

Giá trị Dict có trả về theo thứ tự không?

Các phím sẽ xuất hiện theo thứ tự tùy ý. Các phương thức dict. keys[] và dict. values[] trả về danh sách các khóa hoặc giá trị một cách rõ ràng .

Chủ Đề