Sắp xếp dữ liệu hiệu quả
Thuộc phần Logic và luồng chương trình trong hành trình Python của Coddy. Bài học 48 trên 78.
Sắp xếp là một thao tác cơ bản trong khoa học máy tính, và Python cung cấp các công cụ tích hợp mạnh mẽ để sắp xếp dữ liệu hiệu quả. Hàm chính dùng để sắp xếp là sorted(), có thể dùng để sắp xếp nhiều kiểu dữ liệu khác nhau, bao gồm số, chuỗi và các đối tượng phức tạp hơn.
Sắp xếp cơ bản:
Hàm (function) sorted() nhận một đối tượng có thể lặp (chẳng hạn như danh sách, tuple hoặc tập hợp) làm đối số và trả về một danh sách mới chứa các phần tử đã được sắp xếp. Theo mặc định, hàm sắp xếp theo thứ tự tăng dần.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Đầu ra: [1, 1, 2, 3, 4, 5, 6, 9]Trong ví dụ này, sorted() sắp xếp danh sách numbers theo thứ tự tăng dần.
Sắp xếp theo thứ tự ngược:
Để sắp xếp theo thứ tự giảm dần, bạn có thể dùng tham số reverse và đặt giá trị này thành True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Đầu ra: [9, 6, 5, 4, 3, 2, 1, 1]Ở đây, sorted() sắp xếp danh sách numbers theo thứ tự giảm dần.
Sắp xếp chuỗi:
Hàm (function) sorted() cũng có thể sắp xếp chuỗi theo thứ tự từ điển, tức là thứ tự các từ xuất hiện trong từ điển.
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Đầu ra: ['apple', 'banana', 'cherry']Trong ví dụ này, sorted() sắp xếp danh sách words theo thứ tự bảng chữ cái.
Sắp xếp tùy chỉnh bằng hàm khóa:
Để đáp ứng nhu cầu sắp xếp phức tạp hơn, bạn có thể dùng tham số key để chỉ định một hàm xác định thứ tự sắp xếp. Hàm key được áp dụng cho từng phần tử trước khi sắp xếp, sau đó các giá trị trả về được dùng để so sánh.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Đầu ra: ['fig', 'kiwi', 'banana']Trong trường hợp này, sorted() sắp xếp danh sách words dựa trên độ dài của từng từ, dùng hàm len() làm key.
Thử thách
DễViết chương trình thực hiện các yêu cầu sắp xếp sau bằng hàm sorted():
- Sắp xếp một danh sách số theo thứ tự tăng dần.
- Sắp xếp cùng danh sách số đó theo thứ tự giảm dần.
- Sắp xếp một danh sách chuỗi theo thứ tự bảng chữ cái.
- Sắp xếp cùng danh sách chuỗi đó dựa trên độ dài của chúng.
Tự làm thử
# Dữ liệu đầu vào ban đầu
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# Nhiệm vụ 1: Sắp xếp các số theo thứ tự tăng dần
# Nhiệm vụ 2: Sắp xếp các số theo thứ tự giảm dần
# Nhiệm vụ 3: Sắp xếp các từ theo thứ tự bảng chữ cái
# Nhiệm vụ 4: Sắp xếp các từ theo độ dài
# Thay 'None' bằng code của bạn cho từng nhiệm vụ
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# In kết quả ra
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
4Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ7Tập hợp phần 2
Phép toán toán học phần 1Phép toán toán học phần 2Ôn tập: Săn tìm kho báuTập hợp con và tập hợp chaLặp qua các tập hợpÔn tập: Theo dõi giải đấu10Tạo danh sách bằng cú pháp rút gọn cơ bản
Cú phápTạo danh sách đơn giảnThêm điều kiệnSử dụng phép tổng hợp dữ liệuÔn tập: Ngôi nhà của những danh sáchÔn tập: Những phần tử tự do13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Từ điển phần 1
Từ điển là gì?Tạo từ điểnTruy cập giá trịChỉnh sửa từ điểnÔn tập: Trình quản lý công thức nấu ăn5Ra quyết định nâng cao
Toán tử ba ngôiKiểm tra thành viênKiểm tra danh tínhLỗi thụt lềÔn tập: Bộ lọc kỳ nghỉ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Từ điển, phần 2
Phương thức của từ điểnTừ điển lồng nhauKiểm tra khóaLặp qua từ điểnÔn tập: Bộ đếm tần suất6Tập hợp phần 1
Tập hợp là gì?Các phép toán cơ bảnCác phương thức của tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Sử dụng tổngTìm giá trị nhỏ nhất và lớn nhấtSắp xếp dữ liệu hiệu quảÔn tập: Bộ sắp xếp từ điểnTự luyện tập: Trình biên dịch Python online