Hướng dẫn what does sorted do to a dictionary in python? - Sắp xếp làm gì với từ điển trong python?

Hướng dẫn what does sorted do to a dictionary in python? - Sắp xếp làm gì với từ điển trong python?

Trong Python, một từ điển là một cấu trúc chất béo không được đặt hàng 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ị để làm cho các 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 điều đơn giản để làm. Điều đó vì Python không có một phương pháp sẵn có để làm điều đó.

Tuy nhiên, tôi đã tìm ra một cách để sắp xếp từ điển theo giá trị, và đó là những gì tôi sẽ chỉ cho bạn cách làm 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 theo 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 pháp hoạt động như thế nào
    • 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 một từ điển với 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 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 theo 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 pháp hoạt động như thế nào

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 một từ điển với 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

persons = ['Chris', 'Amber', 'David', 'El-dorado', 'Brad', 'Folake']
sortedPersons = sorted(persons)

print(sortedPersons)
# Output: ['Amber', 'Brad', 'Chris', 'David', 'El-dorado', 'Folake']

Cách chuyển đổi danh sách kết quả thành từ điể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]

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

my_dict = { 'num6': 6, 'num3': 3, 'num2': 2, 'num4': 4, 'num1': 1, 'num5': 5}
sortedDict = sorted(my_dict)

print(sortedDict)
# ['num1', 'num2', 'num3', 'num4', 'num5', 'num6']

Sự kết luận

Phương pháp hoạt động như thế nào

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 một từ điển với 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

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 một từ điển với 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 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

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 các 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 chìa 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 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à một từ điển.

Cách sắp xếp một từ điển với 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 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
  • 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 các 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 chìa 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 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à một từ điển.

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1])
print(sorted_footballers_by_goals)

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:

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ộ dữ liệu bên dưới theo thứ tự tăng dần:

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

# [('Cruyff', 104), ('Eusebio', 120), ('Messi', 125), ('Ronaldo', 132), ('Pele', 150)]

Đâ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à một từ điển. Đó là những gì tôi sẽ cho bạn thấy tiếp theo.

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1])
print(sorted_footballers_by_goals)

# [('Cruyff', 104), ('Eusebio', 120), ('Messi', 125), ('Ronaldo', 132), ('Pele', 150)]

Để sắp xếp một từ điển, chúng tôi vẫn sẽ sử dụng hàm được 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 tôi 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 đó là thời gian để giải thích chi tiết 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ố:

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

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 các 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 chìa 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 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à một từ điển.

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1])
converted_dict = dict(sorted_footballers_by_goals)

print(converted_dict)
# Output: {'Cruyff': 104, 'Eusebio': 120, 'Messi': 125, 'Ronaldo': 132, 'Pele': 150}

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:

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

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 các 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 chìa khóa.

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1], reverse=True)
converted_dict = dict(sorted_footballers_by_goals)

print(converted_dict)
# Output: {'Pele': 150, 'Ronaldo': 132, 'Messi': 125, 'Eusebio': 120, 'Cruyff': 104}

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 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à một từ điển.

Nếu bạn không thiết lập

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1])
print(sorted_footballers_by_goals)

6 hoặc bạn đặt giá trị của nó thành sai, 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. Bây giờ bạn có thể sắp xếp một 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ử dụng trong Python.

Tuy nhiên, có một thứ gì đó làm tôi tò mò khi tôi chuẩn bị viết bài viết này. Hãy nhớ rằng chúng tôi đã có thể sử dụng

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ực tiếp trên một từ điển. Điều này đã cho chúng tôi một danh sách là kết quả, mặc dù chúng tôi chỉ có các khóa chứ không phải các giá trị.

Điều gì sẽ xảy ra nếu chúng ta chuyển đổi danh sách đó thành một từ điển với phương pháp

footballers_goals = {'Eusebio': 120, 'Cruyff': 104, 'Pele': 150, 'Ronaldo': 132, 'Messi': 125}

sorted_footballers_by_goals = sorted(footballers_goals.items(), key=lambda x:x[1])
print(sorted_footballers_by_goals)

2? Bạn có nghĩ rằng chúng ta có thể nhận được kết quả mong muốn? Hãy xem nào:

my_dict = { 'num6': 6, 'num3': 3, 'num2': 2, 'num4': 4, 'num1': 1, 'num5': 5}
sortedDict = sorted(my_dict)

converted_dict = dict(sortedDict)
print(converted_dict)
"""
Output: 
dict_by_value.py
Traceback (most recent call last):
  File "sort_dict_by_value.py", line 17, in <module>
    converted_dict = dict(sortedDict)
ValueError: dictionary update sequence element #0 has length 4; 2 is required
"""

Chúng tôi đã gặp lỗi! Điều đó 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. Điều đó sẽ bất chấp 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 ta muốn.

Nếu bạn muốn tìm hiểu thêm về khả năng hiểu từ điển, bạn nên đọc bài viết này.

Cảm ơn bạn đã đọc!



Học mã miễn phí. Chương trình giảng dạy 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

Sắp xếp làm gì trong từ điển?

Hàm Sắp xếp () 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.... Ví dụ 1: Sắp xếp theo thứ tự giảm dần ..

Chức năng sắp xếp có hoạt động trên từ điển không?

Phương thức Sắp xếp () sắp xếp các dữ liệu có thể lặp lại như danh sách, bộ dữ liệu và từ điển..

Từ điển có lưu trữ dữ liệu theo thứ tự được sắp xếp không?

Từ điển là một cấu trúc dữ liệu quan trọng lưu trữ dữ liệu bằng cách ánh xạ các khóa với các giá trị.Các từ điển mặc định trong Python là các cấu trúc dữ liệu không được đặt hàng.Giống như danh sách, chúng ta có thể sử dụng hàm Sắp xếp () để sắp xếp từ điển theo các khóa.Tuy nhiên, nó sẽ chỉ trả về một danh sách các khóa được sắp xếp, thường không phải là những gì chúng ta mong muốn.we can use the sorted() function to sort the dictionary by keys. However, it will only return a list of sorted keys, which is usually not what we desire.

Phím từ điển Python được sắp xếp như thế nào?

Cần sắp xếp trong từ điển trước, hãy sắp xếp các phím theo thứ tự bằng cách sử dụng hàm key_value.iterkeys ().Thứ hai, sắp xếp các phím theo thứ tự bằng cách sử dụng hàm được sắp xếp (key_value) và in giá trị tương ứng với nó.Thứ ba, sắp xếp các giá trị theo bảng chữ cái bằng cách sử dụng key_value.sort the keys alphabetically using key_value. iterkeys() function. Second, sort the keys alphabetically using the sorted (key_value) function & print the value corresponding to it. Third, sort the values alphabetically using key_value.