Làm thế nào để bạn sắp xếp một từ điển bằng số trong python?

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ồm

  • Cá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]
    
    0
  • 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
    • Các tham số của Phương thức
      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
  • 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
    • Cách chuyển đổi danh sách kết quả thành từ điể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ần
  • Sự kết luận

Cá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] 0

Phương thức

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 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óa

Phương thức

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 đặt các mục được sắp xếp trong 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ển

Chẳng hạn,

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 danh sách dưới đây theo thứ tự bảng chữ cái

________số 8

Và phương thức

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 các số trong bộ bên dưới theo thứ tự tăng dần

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]

Nếu bạn sử dụng phương thức

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 với từ điển, chỉ các khóa sẽ được trả về và như thường lệ, nó sẽ nằm trong danh sách

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]
2

Đâ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

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, nên đã đến lúc giải thích chi tiết về 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

Các tham số của Phương thức 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

Phương thức

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 có thể chấp nhận tối đa 3 tham số

  • iterable – dữ liệu để lặp lại. Nó có thể là một bộ dữ liệu, danh sách hoặc từ điển

  • key – một giá trị tùy chọn, chức năng giúp bạn thực hiện thao tác sắp xếp tùy chỉnh

  • đảo ngược - một giá trị tùy chọn khác. Nó giúp bạn sắp xếp dữ liệu đã được sắp xếp theo thứ tự tăng dần hoặc giảm dần

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

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 để từ điển được sắp xếp 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 thức

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, bạn sẽ phải thực hiện như sau

  • chuyển từ điển sang phương thức
    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 làm giá trị đầu tiên
  • sử dụ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]
    
    29 trên từ điển để lấy các khóa và giá trị của nó
  • viết hàm lambda để lấy các giá trị được truy xuất bằng phương thức
    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]
    
    30

Đây là một ví dụ

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]
3

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

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]
5

Đây là mã đầy đủ để bạn không bị nhầm lẫn

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]
6

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

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 đều được đưa vào danh sách

Chú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

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]
32

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]
9

Hãy nhớ rằng chúng ta đã lưu từ điển đã sắp xếp trong biến có tên là

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]
33, vì vậy đây là biến mà chúng ta phải chuyển đến
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]
32

Mã đầy đủ trông như thế này

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]
2

Đó 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ần

Hãy nhớ rằng phương thức

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 chấp nhận giá trị thứ ba có tên là
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]
36

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]
36 với giá trị là
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]
38 sẽ sắp xếp từ điển đã sắp xếp theo thứ tự giảm dần

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]
7

Bạn có thể thấy đầu ra bị đảo ngược vì chúng tôi đã chuyển

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]
39 sang phương thức
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

Nếu bạn hoàn toàn không đặt

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]
36 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 định

Sự kết luận

Xin 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

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 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

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]
32?

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]
3

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


Làm thế nào để bạn sắp xếp một từ điển bằng số trong python?
Kolade Chris

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

Các cách khác nhau để sắp xếp từ điển là gì?

Cần sắp xếp trong từ điển .
Đầu tiên, sắp xếp các khóa theo thứ tự abc bằng key_value. hàm iterkey()
Thứ hai, sắp xếp các khóa theo thứ tự bảng chữ cái bằng hàm đã sắp xếp (giá trị khóa) và in giá trị tương ứng với nó
Thứ ba, sắp xếp các giá trị theo thứ tự abc bằng key_value. iteritems(), key = lambda (k, v). (v, k))

Bạn có thể sắp xếp từ điển tại sao hoặc tại sao không 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().

Hàm nào được sử dụng để sắp xếp từ điển trong Python?

Từ điển mặc định trong Python là cấu trúc dữ liệu không có thứ tự. Giống như danh sách, chúng ta có thể sử dụng hàm sorted() để sắp xếp từ điển theo khóa.