Chúng tôi cần sắp xếp dữ liệu để giảm độ phức tạp của dữ liệu và thực hiện các truy vấn nhanh hơn và hiệu quả hơn. Do đó, việc sắp xếp là rất quan trọng khi chúng ta đang xử lý một lượng lớn dữ liệu. Ở đây, chúng ta sẽ sử dụng cách tiếp cận sau Show
Dưới đây là các tác vụ chính cần thực hiện sắp xếp từ điển theo giá trị và khóa trong Python
ví dụ 1. Sắp xếp từ điển theo khóa trong PythonTrong ví dụ này, chúng tôi sẽ sắp xếp từ điển theo khóa và loại kết quả sẽ là từ điển. Input: {'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} Output: {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2} Python3{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}2 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}3 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}4 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}5 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}6 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}7 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}8 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}9 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}6 Input: key_value[2] = '56' key_value[1] = '2' key_value[4] = '12' key_value[5] = '24' key_value[6] = '18' key_value[3] = '323' Output: 1 2 3 4 5 61 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}8 Input: key_value[2] = '56' key_value[1] = '2' key_value[4] = '12' key_value[5] = '24' key_value[6] = '18' key_value[3] = '323' Output: 1 2 3 4 5 63 Input: key_value[2] = '56' key_value[1] = '2' key_value[4] = '12' key_value[5] = '24' key_value[6] = '18' key_value[3] = '323' Output: 1 2 3 4 5 64 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}6 Input: key_value[2] = '56' key_value[1] = '2' key_value[4] = '12' key_value[5] = '24' key_value[6] = '18' key_value[3] = '323' Output: 1 2 3 4 5 66 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}8 Input: key_value[2] = '56' key_value[1] = '2' key_value[4] = '12' key_value[5] = '24' key_value[6] = '18' key_value[3] = '323' Output: 1 2 3 4 5 68 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}6 Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 60 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}8 Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 62 {'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}6 Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 64 Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 65 Trong Python, từ điển là một cấu trúc béo không có thứ tự theo mặc định. Vì vậy, đôi khi, bạn sẽ muốn sắp xếp từ điển theo khóa hoặc giá trị để thực hiện truy vấn dễ dàng hơn Vấn đề là việc sắp xếp một từ điển theo giá trị không bao giờ là một việc đơn giản. Đó là bởi vì Python không có phương thức sẵn có để làm điều đó Tuy nhiên, tôi đã tìm ra cách sắp xếp từ điển theo giá trị và đó là điều tôi sẽ chỉ cho bạn cách thực hiện trong bài viết này Những gì chúng tôi sẽ bao gồmCách sắp xếp dữ liệu bằng phương pháp numbers = (14, 3, 1, 4, 2, 9, 8, 10, 13, 12) sortedNumbers = sorted(numbers) print(sortedNumbers) # Output: [1, 2, 3, 4, 8, 9, 10, 12, 13, 14] 0Phương thức 0 sắp xếp dữ liệu có thể lặp lại như danh sách, bộ dữ liệu và từ điển. Nhưng nó chỉ sắp xếp theo khóaPhương thức 0 đưa các mục đã sắp xếp vào một danh sách. Đó là một vấn đề khác mà chúng tôi phải giải quyết, bởi vì chúng tôi muốn từ điển được sắp xếp vẫn là từ điểnChẳng hạn, 0 đã sắp xếp danh sách dưới đây theo thứ tự bảng chữ cái
Và phương thức 0 sắp xếp các số trong bộ bên dưới theo thứ tự tăng dần
Nếu bạn sử dụng phương thức 0 với một từ điển, thì chỉ các khóa sẽ được trả về và như thường lệ, nó sẽ nằm trong một danh sách
Đây không phải là hành vi bạn muốn. Bạn muốn từ điển được sắp xếp theo giá trị và vẫn là từ điển. Đó là những gì tôi sẽ chỉ cho bạn tiếp theo Phương pháp numbers = (14, 3, 1, 4, 2, 9, 8, 10, 13, 12) sortedNumbers = sorted(numbers) print(sortedNumbers) # Output: [1, 2, 3, 4, 8, 9, 10, 12, 13, 14] 0 hoạt động như thế nàoĐể sắp xếp một từ điển, chúng ta vẫn sẽ sử dụng chức năng đã sắp xếp, nhưng theo một cách phức tạp hơn. Đừng lo lắng, tôi sẽ giải thích mọi thứ bạn cần biết Vì chúng ta vẫn sẽ sử dụng phương pháp 0, nên đã đến lúc giải thích chi tiết về phương pháp 0Các thông số của Phương pháp numbers = (14, 3, 1, 4, 2, 9, 8, 10, 13, 12) sortedNumbers = sorted(numbers) print(sortedNumbers) # Output: [1, 2, 3, 4, 8, 9, 10, 12, 13, 14] 0Phương thức 0 có thể chấp nhận tối đa 3 tham số
Nếu bạn đoán đúng, tham số chính là những gì chúng ta sẽ chuyển vào phương thức 0 để sắp xếp từ điển theo giá trịBây giờ, đã đến lúc sắp xếp từ điển của chúng ta theo giá trị và đảm bảo rằng nó vẫn là một từ điển Cách sắp xếp từ điển bằng phương pháp numbers = (14, 3, 1, 4, 2, 9, 8, 10, 13, 12) sortedNumbers = sorted(numbers) print(sortedNumbers) # Output: [1, 2, 3, 4, 8, 9, 10, 12, 13, 14] 0Để sắp xếp chính xác từ điển theo giá trị bằng phương pháp 0, bạn sẽ phải thực hiện như sau
Đây là một ví dụ
Như tôi đã nói trước đó, chúng ta phải lấy các giá trị đó của từ điển để có thể sắp xếp từ điển theo giá trị. Đó là lý do tại sao bạn có thể thấy 1 trong hàm lambda 1 đại diện cho các chỉ số của các giá trị. Các phím là 0. Hãy nhớ rằng một lập trình viên bắt đầu đếm từ 0, không phải 1 Với đoạn mã trên, tôi nhận được kết quả bên dưới
Đây là mã đầy đủ để bạn không bị nhầm lẫn
Bạn có thể thấy từ điển đã được sắp xếp theo các giá trị theo thứ tự tăng dần. Bạn cũng có thể sắp xếp theo thứ tự giảm dần. Nhưng chúng tôi sẽ xem xét điều đó sau vì chúng tôi vẫn gặp sự cố với kết quả mà chúng tôi nhận được Vấn đề là từ điển không còn là từ điển nữa. Các khóa và giá trị riêng lẻ được đặt trong một bộ và tiếp tục được cô đọng thành một danh sách. Hãy nhớ rằng bất cứ điều gì bạn nhận được do kết quả của phương pháp 0 đều được đưa vào danh sáchChúng tôi đã có thể sắp xếp các mục trong từ điển theo giá trị. Những gì còn lại là chuyển đổi nó trở lại từ điển Cách chuyển đổi danh sách kết quả thành từ điểnĐể chuyển đổi danh sách kết quả thành từ điển, bạn không cần phải viết một hàm phức tạp khác hoặc một vòng lặp. Bạn chỉ cần chuyển biến lưu danh sách kết quả vào phương thức 2
Hãy nhớ rằng chúng ta đã lưu từ điển đã sắp xếp trong biến có tên là 3, vì vậy đây là biến mà chúng ta phải chuyển đến 2Mã đầy đủ trông như thế này
Đó là nó. Chúng tôi đã có thể sắp xếp các mục trong từ điển và chuyển đổi chúng trở lại từ điển. Chúng tôi vừa ăn bánh và cũng ăn nó Cách sắp xếp từ điển theo giá trị theo thứ tự tăng dần hoặc giảm dầnHãy nhớ rằng phương thức 0 chấp nhận giá trị thứ ba có tên là 6 6 với giá trị là 8 sẽ sắp xếp từ điển đã 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 9 sang phương thức 0Nếu bạn hoàn toàn không đặt 6 hoặc bạn đặt giá trị của nó thành false, từ điển sẽ được sắp xếp theo thứ tự tăng dần. Đó là mặc địnhPhần kết luậnXin chúc mừng. Giờ đây, bạn có thể sắp xếp từ điển theo giá trị mặc dù không có phương thức hoặc hàm tích hợp sẵn để sử dụng trong Python Tuy nhiên, có một điều khiến tôi tò mò khi chuẩn bị viết bài này. Hãy nhớ rằng chúng ta có thể sử dụng trực tiếp 0 trên từ điển. Kết quả là chúng tôi có một danh sách, mặc dù chúng tôi chỉ nhận được khóa chứ không phải giá trịĐiều gì sẽ xảy ra nếu chúng ta chuyển đổi danh sách đó thành từ điển bằng phương pháp 2?
Chúng tôi gặp lỗi. Đó là bởi vì nếu bạn muốn tạo một từ điển từ một danh sách, bạn phải sử dụng khả năng hiểu từ điển. Và nếu bạn sử dụng khả năng hiểu từ điển cho loại dữ liệu này, bạn phải chỉ định một giá trị cho tất cả các mục nhập. Điều đó sẽ thách thức mục đích sắp xếp từ điển theo giá trị, vì vậy đó không phải là điều chúng tôi muốn Nếu bạn muốn tìm hiểu thêm về cách hiểu từ điển, bạn nên đọc bài viết này Cảm ơn bạn đã đọc QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nhà phát triển web và nhà văn kỹ thuật tập trung vào các công nghệ giao diện người dùng Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Các cách khác nhau để sắp xếp từ điển trong Python là gì?Sắp xếp từ điển Python. Giá trị, khóa và hơn thế nữa . Sử dụng hàm sorted() Lấy khóa, giá trị hoặc cả hai từ từ điển Hiểu cách Python sắp xếp các bộ dữ liệu Sử dụng tham số chính và Hàm Lambda Chọn giá trị lồng nhau bằng khóa sắp xếp Chuyển đổi trở lại từ điển Giá trị từ điển có thể được sắp xếp?Từ điển được tạo thành từ khóa. cặp giá trị. Do đó, chúng có thể được sắp xếp theo khóa hoặc theo giá trị .
Các cách khác nhau để sắp xếp từ điển là gì?Hãy tìm hiểu các cách khác nhau để sắp xếp từ điển. . Sắp xếp theo phím Sắp xếp theo giá trị thuật toán sắp xếp Đảo ngược thứ tự sắp xếp Làm cách nào để sắp xếp danh sách theo thứ tự tăng dần trong Python mà không cần chức năng sắp xếp?Chương trình Python sắp xếp danh sách theo thứ tự tăng dần mà không cần sử dụng Sort. Trong chương trình này, chúng tôi đang sử dụng Nested For Loop để lặp lại từng số trong Danh sách và sắp xếp chúng theo thứ tự tăng dần . if(NumList[0] > NumList[1]) = if(67 > 86) – Có nghĩa là điều kiện là Sai. Vì vậy, nó thoát khỏi khối If và giá trị j tăng thêm 1. |