• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp Lập trình

Hàm sorted() trong Python

@admiz by @admiz
26/12/2021
in Lập trình
0
Ham Sorted Trong Python 640 1

Hàm sorted() trong Python sắp xếp các phần tử của một đối tượng theo thứ tự nhất định (tăng dần hoặc giảm dần) và trả về đối tượng dưới dạng danh sách đã sắp xếp.

Cú pháp của hàm sorted()

sorted(đối tượng, key=None, reverse=False)

Tham số của hàm sorted()

sorted() có thể có tối đa 3 thông số:

  • Đối tượng: Mỗi chuỗi (string, tuple, list) hoặc một bộ sưu tập (set, dictionary, frozen set) hoặc bất kỳ đối tượng iterator  nào.
  • reverse (tùy chọn): Nếu giá trị là True, danh sách sẽ được sắp xếp theo kiểu đảo ngược (hoặc giảm dần). Nếu không được khai báo, giá trị mặc định là False.
  • key (tùy chọn): Nếu có, hàm sorted() so sánh giá trị với key sau đó sắp xếp. Giá trị mặc định là None.

Hàm sorted() trong Python được dùng để sắp xếp các phần tử trong đối tượng
Hàm sorted() trong Python được dùng để sắp xếp các phần tử trong đối tượng

Ví dụ 1: Sắp xếp string, lish và tuble

Mời các bạn xem đoạn code sau:

# Sắp xếp list
py_list = ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']
print(sorted(py_list))

# Sắp xếp string
py_string = 'Quantrimang'
print(sorted(py_string))

# Sắp xếp tuple
py_tuple = ('q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g')
print(sorted(py_tuple))

Khi chạy chương trình kết quả thu được là:

['a', 'a', 'g', 'i', 'm', 'n', 'n', 'q', 'r', 't', 'u']
['Q', 'a', 'a', 'g', 'i', 'm', 'n', 'n', 'r', 't', 'u']
['a', 'a', 'g', 'i', 'm', 'n', 'n', 'q', 'r', 't', 'u']

Chú ý: Một list cũng có hàm sort() hoạt động tương tự hàm sorted(). Khác biệt duy nhất đó là hàm sort() không trả về bất kỳ giá trị nào và thay đổi danh sách ban đầu.

Ví dụ 2: Sắp xếp theo thứ tự giảm dần

Hàm sorted() có tham số đảo ngược và khi bạn đặt reverse=True, danh sách sẽ được sắp xếp theo thứ tự giảm dần.

Hãy xem xét những dòng code sau:

# Sắp xếp set
py_set = {'q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g' 
print(sorted(py_set, reverse=True))

# Sắp xếp dictionary
py_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5 
print(sorted(py_dict, reverse=True))

# Sắp xếp frozen set
frozen_set = frozenset(('q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g'))
print(sorted(frozen_set, reverse=True))

Khi chạy chương trình, kết quả trả về là:

['u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a']
['u', 'o', 'i', 'e', 'a']
['u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a']

Tham số key của hàm sorted() trong Python

Nếu bạn muốn sắp xếp theo kiểu riêng của mình, hàm sorted() cũng chấp nhận việc lấy một key làm tham số tùy chọn.

Bạn có thể sắp xếp đối tượng dựa trên giá trị được trả về của key. Ví dụ:

sorted(iterable, key=len)

Ở đây, len() là một hàm tích hợp sẵn của Python với nhiệm vụ đếm chiều dài của một đối tượng.

Danh sách được sắp xếp dựa trên độ dài của phần tử, từ số thấp nhất đến cao nhất.

Ví dụ 3: Sắp xếp một list bằng hàm sorted() có chứa key

Mời các bạn xem đoạn code:

# Xắp xếp dựa trên phần tử thứ 2
def take_second(elem):
    return elem[1]


# list ngẫu nhiên
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# sắp xếp list với key
sorted_list = sorted(random, key=take_second)

# hiển thị list
print('List đã được sắp xếp:', sorted_list)

Sau khi chạy chương trình, kết quả thu được là

List đã được sắp: [(4, 1), (2, 2), (1, 3), (3, 4)]

Ví dụ 4: Sắp xếp với nhiều key

Ban đầu chúng ta có một danh sách như sau:

# List kết quả thi học kỳ của các sinh viên
# Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo thang 100, Tuổi)

participant_list = [
    ('Lê An', 50, 18),
    ('Trần Bình', 75, 12),
    ('Trần Tâm', 75, 20),
    ('Thanh Lam', 90, 22),
    ('Vũ Lan', 45, 12)
]

Bây giờ chúng ta cần sắp xếp list sinh viên theo điểm số từ cao xuống thấp. Trong trường hợp này, nếu sinh viên có cùng điểm số thì sinh viên nhỏ tuổi hơn sẽ được xếp ở vị trí phía trước.

Chúng ta có thể làm được điều này với hàm sorted() nhiều key bằng cách đưa các con số về dạng tuple.

Hai tuple có thể được so sánh bằng cách so sánh các yếu tố từ đầu đến cuối. Nếu có một yếu tố bằng nhau, yếu tố thứ hai sẽ được so sánh… tiếp tục cho tới hết.

>>> (1,3) > (1, 4)
False
>>> (1, 4) < (2,2)
True
>>> (1, 4, 1) < (2, 1)
True

Dùng cách xử lý này, chúng ta có thể xây dựng đoạn code so sánh như sau:

# List kết quả thi học kỳ của các sinh viên
# Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo thang 100, Tuổi)

participant_list = [
    ('Lê An', 50, 18),
    ('Trần Bình', 75, 12),
    ('Trần Tâm', 75, 20),
    ('Thanh Lam', 90, 22),
    ('Vũ Lan', 45, 12)
]


def sorter(item):
    
    error = 100 - item[1]
    age = item[2]
    return (error, age)


sorted_list = sorted(participant_list, key=sorter)
print(sorted_list)

Khi chạy chương trình, kết quả thu được là:

[('Thanh Lam', 90, 22), ('Trần Bình', 75, 12), ('Trần Tâm', 75, 20), ('Lê An', 50, 18), ('Vũ Lan', 45, 12)

Do hàm sắp xếp ngắn và chỉ cần một dòng nên hàm lambda được sử dụng bên trong key thay vì chuyển ra ngoài thành hàm riêng.

Đoạn code trên có thể viết lại bằng hàm lambda theo cách sau:

# List kết quả thi học kỳ của các sinh viên
# Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo thang 100, Tuổi)

participant_list = [
    ('Lê An', 50, 18),
    ('Trần Bình', 75, 12),
    ('Trần Tâm', 75, 20),
    ('Thanh Lam', 90, 22),
    ('Vũ Lan', 45, 12)
]

sorted_list = sorted(participant_list, key=lambda item: (100-item[1], item[2]))
print(sorted_list)

Kết quả thu được vẫn là:

[('Thanh Lam', 90, 22), ('Trần Bình', 75, 12), ('Trần Tâm', 75, 20), ('Lê An', 50, 18), ('Vũ Lan', 45, 12)

Chúc các bạn sớm quen với hàm sorted() trong Python và đừng quên truy cập trang web dưới đây để học thêm các hàm Python hữu ích khác.

  • Các hàm Python tích hợp sẵn
  • Hàm setattr() trong Python
  • Hàm repr() trong Python
  • Hàm property() trong Python
  • Hàm oct() trong Python là gì?
  • Hàm memoryview() trong Python
  • Hàm hash() trong Python
Post Views: 342
Tags: hàm sorted()hàm sorted() pythonhàm sorted() trong pythonsorted() trong python
Previous Post

Những bước cơ bản giải mã số nhị phân

Next Post

Cách cài đặt và sử dụng screensaver của các phiên bản Windows “cổ điển” trên Windows 11

Related Posts

Dien Tich Tam Giac 640 1
Lập trình

Công thức tính diện tích tam giác: vuông, thường, cân, đều

26/12/2021
Huong Dan Cai Dat Node Js 640 1
Lập trình

Hướng dẫn cài đặt Node.js

26/12/2021
Cau Truc Du Lieu Hang Doi Queue 640 1
Lập trình

Cấu trúc dữ liệu hàng đợi (Queue)

26/12/2021
Hoc Css 640 8
Lập trình

Thanh điều hướng – Navigation Bar trong CSS

26/12/2021
Ms Sql Server Management Studio 640 3
Lập trình

Quản lý MS SQL Server bằng Management Studio

26/12/2021
Java Development Kit 1
Lập trình

Tải Java Development Kit 8-update-281

26/12/2021
Next Post
Cai Dat Va Su Dung Screensaver Co Dien Tren Windows 11700 1

Cách cài đặt và sử dụng screensaver của các phiên bản Windows “cổ điển” trên Windows 11

Bài mới nhất

Dịch Vụ Thiết Kế Website Tại Hải Dương Chuyên Nghiệp, ấn Tượng Và Uy Tín 612d25752b14f.png

Dịch vụ thiết kế website tại Hải Dương chuyên nghiệp, ấn tượng và uy tín

06/05/2025
Top Công Ty Thiết Kế Website Tại Biên Hòa Chuyên Nghiệp, Chuẩn Seo 612d259494e93.jpeg

Top công ty thiết kế website tại Biên Hòa chuyên nghiệp, chuẩn SEO

06/05/2025
Top Công Ty Thiết Kế Website Tại Vinh – Nghệ An Uy Tín 612d259a9cae3.jpeg

Top công ty thiết kế website tại Vinh – Nghệ An uy tín

05/05/2025
Top 10 Công Ty Thiết Kế Website Tại Nha Trang Chuyên Nghiệp 612d0a9ad018b.jpeg

Top 10 công ty thiết kế website tại Nha Trang chuyên nghiệp

05/05/2025
Các Dịch Vụ Thiết Kế Website Tại Vĩnh Phúc Chuyên Nghiệp, Uy Tín Nhất 612d0a91e63af.jpeg

Các dịch vụ thiết kế website tại Vĩnh Phúc chuyên nghiệp, uy tín nhất

04/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution