Hướng dẫn what does sorted dict return in python? - Những gì đã sắp xếp dict trả lại trong python?

Giới thiệu

Chúng ta có thể sắp xếp các danh sách, bộ dữ liệu, chuỗi và các đối tượng khác có thể đi được trong Python vì tất cả chúng đều là đối tượng được đặt hàng. 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 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 ().

Trong hướng dẫn này, chúng tôi sẽ học cách sắp xếp từ điển bằng cách sử dụng hàm Sắp xếp () trong Python.

được sắp xếp () hàm

Hàm Sắp xếp () có thể chấp nhận ba tham số: có thể điều chỉnh được, khóa và đảo ngược.

được sắp xếp (có thể lặp lại, khóa, đảo ngược)

Trái ngược với phương thức Sort () chỉ hoạt động trên danh sách, hàm Sắp xếp () có thể hoạt động trên bất kỳ sự khác biệt nào, chẳng hạn như danh sách, bộ dữ liệu, từ điển và các loại khác. Tuy nhiên, không giống như phương thức Sort () không trả về và sửa đổi danh sách gốc, hàm Sắp xếp () trả về một danh sách mới trong khi không thay đổi đối tượng gốc.

LƯU Ý: Bất kể điều gì đã được chuyển vào hàm Sắp xếp (), nó luôn trả về một danh sách.

Sắp xếp một từ điển

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 bởi các khóa hoặc bởi các giá trị.

Hãy để nói rằng chúng ta có một từ điển, với các phím là tên và các giá trị là lâu đời.

dictionary_of_names = {'beth': 37, 
'jane': 32,
'john': 41,
'mike': 59
}

Nếu chúng ta chỉ truyền trong toàn bộ từ điển dưới dạng hàm được sắp xếp (), chúng ta sẽ nhận được đầu ra sau:

print(sorted(dictionary_of_names))
# ['beth', 'jane', 'john', 'mike']

Như chúng ta có thể thấy, nếu chúng ta truyền trong toàn bộ từ điển dưới dạng hàm được sắp xếp (), nó sẽ trả về một danh sách chỉ chứa các khóa được sắp xếp theo thứ tự bảng chữ cái.

Sử dụng phương thức mục ()

Nếu chúng ta muốn có được một bản sao được sắp xếp của toàn bộ từ điển, chúng ta cần sử dụng Phương thức Dictionary ():

print(dictionary_of_names.items())
# dict_items([('beth', 37), ('jane', 32), ('john', 41), ('mike', 59)])

Lưu ý cách phương thức mục () trả về một đối tượng Dict_Items, trông tương tự như một danh sách các bộ dữ liệu. Đối tượng Dict_Items này là một điều có thể. Do đó, nó có thể được truyền vào dưới dạng hàm được sắp xếp ().

Chúng ta có thể sắp xếp đối tượng Dict_Items này giống như cách chúng ta sắp xếp danh sách các bộ dữ liệu được thấy trước đó. Ví dụ, để sắp xếp theo phần tử thứ hai trong mỗi tuple, đó là tuổi, chúng ta có thể sử dụng mã sau:

sorted_age = sorted(dictionary_of_names.items(), key = lambda kv: kv[1])print(sorted_age)
# [('jane', 32), ('beth', 37), ('john', 41), ('mike', 59)]

Lưu ý cách hàm được sắp xếp () trả về một danh sách các bộ dữ liệu, được sắp xếp theo độ tuổi (hoặc phần tử thứ hai trong mỗi bộ). Để chuyển đổi danh sách các bộ dữ liệu này thành từ điển, chúng ta có thể sử dụng hàm Dict () tích hợp:

sorted_dictionary = dict(sorted_age)print(sorted_dictionary)
# {'jane': 32, 'beth': 37, 'john': 41, 'mike': 59}

Bây giờ chúng tôi có một từ điển được sắp xếp theo độ tuổi!

Ví dụ- Đếm số trong danh sách

Hãy nói rằng chúng tôi muốn tạo một hàm khi được thông qua danh sách các số, trả về một từ điển được sắp xếp có chứa các số và số lượng của chúng theo thứ tự tăng dần. Do đó, chúng ta có thể có các khóa của từ điển là các phần tử (hoặc số) khác nhau trong danh sách và các giá trị tương ứng của chúng bằng với số lần phần tử cụ thể (hoặc số) hiển thị trong danh sách.

Chà, chúng ta có thể hoàn thành nhiệm vụ này với chức năng sau:

nums = [1,1,7,3,5,3,2,9,5,1,3,2,2,2,2,2,9]def count(num_list):
count_dict = {}
for num in num_list:
count_dict[num] = num_list.count(num)
return dict(sorted(count_dict.items(), key=lambda x:x[1]))
print(count(nums))# {7: 1, 5: 2, 9: 2, 1: 3, 3: 3, 2: 6}

Trước tiên chúng tôi xác định số lượng hàm () với một tham số, num_list. Trong hàm, trước tiên chúng tôi tạo một từ điển trống, Count_dict. Sau đó, khi chúng ta lặp qua num_list, đây sẽ là danh sách được truyền như một đối số cho hàm, sử dụng một vòng lặp, chúng ta đang tạo khóa: các cặp giá trị trong Count_dict. Khóa sẽ bằng số hiện tại mà chúng tôi đang lặp lại trong khi lặp qua num_list và giá trị tương ứng của nó bằng với số lượng của số đó trong num_list. Cuối cùng, chúng tôi trả lại từ điển được sắp xếp.

Count () là một phương thức danh sách trả về số lần giá trị chúng tôi vượt qua trong danh sách của chúng tôi.

Sử dụng một từ điển hiểu

Chúng ta có thể rút ngắn thêm chức năng này bằng cách sử dụng khả năng hiểu từ điển để tạo từ điển Count_dict thay vì một vòng lặp:

def count(num_list):
count_dict = {num:num_list.count(num) for num in num_list}
return dict(sorted(count_dict.items(), key=lambda x:x[1]))

Chúng tôi sử dụng dấu ngoặc xoăn để thiết lập rằng chúng tôi muốn tạo một từ điển (trái ngược với danh sách nơi chúng tôi sẽ sử dụng dấu ngoặc trong danh sách hiểu). Sau đó, khi chúng tôi lặp qua num_list, chúng tôi đang tạo khóa: các cặp giá trị như sau: num: num_list.count (num), trong đó khóa là số (hoặc num) và giá trị của nó là số lượng của số đó trong num_list.

Chúng ta có thể rút ngắn chức năng này thành một dòng mã bằng cách sử dụng phương thức item () trực tiếp trên khả năng hiểu từ điển:

def count(num_list):
return dict(sorted({num:num_list.count(num) for num in num_list}.items(), key=lambda x:x[1]))

Để biết thêm thông tin về sự hiểu biết từ điển, hãy xem những điều sau đây:

Sự kết luận

Trong hướng dẫn này, chúng tôi đã xem xét ngắn gọn hàm Sắp xếp (). Chúng tôi đã học cách hàm được sắp xếp () hoạt động trên bất kỳ đối tượng có thể lặp lại nào (mà không sửa đổi nó) và trả về một danh sách mới, nhưng phương thức sort () chỉ hoạt động trên danh sách và sửa đổi chúng tại chỗ và không trả về không. Cuối cùng, chúng ta đã thấy cách chúng ta có thể sử dụng hàm Sắp xếp () để sắp xếp từ điển trong Python.

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

Sắp xếp () Phương thức sắp xếp danh sách tại chỗ.Ngược lại, hàm Sắp xếp () trả về một danh sách mới, để lại danh sách ban đầu không được sửa đổi.Nhưng hành vi mặc định của việc truyền từ điển trực tiếp đến hàm Sắp xếp () là lấy các khóa của từ điển, sắp xếp chúng và chỉ trả lại danh sách các khóa.returns a new list, leaving the original list unmodified. But the default behavior of passing in a dictionary directly to the sorted() function is to take the keys of the dictionary, sort them, and return a list of the keys only.

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

Sắp xếp có trả lại một danh sách không?

Hàm Sắp xếp () sắp xếp các phần tử của một số lượng được cho theo một thứ tự cụ thể (tăng dần hoặc giảm dần) và trả về nó làm danh sách.returns it as a list.

Phương pháp nào trả về một danh sách được sắp xếp của các khóa từ điển?

Phương thức () phương thức được sử dụng để trả về danh sách với tất cả các khóa từ điển với các giá trị.Nó trả về một đối tượng Chế độ xem hiển thị một danh sách của một cặp Tuple (khóa, giá trị) nhất định của một từ điển.Sắp xếp () được sử dụng để sắp xếp các khóa của từ điển.sorted() is used to sort the keys of the dictionary.