Menu
CoddyTech

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.

challenge icon

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():

  1. Sắp xếp một danh sách số theo thứ tự tăng dần.
  2. Sắp xếp cùng danh sách số đó theo thứ tự giảm dần.
  3. Sắp xếp một danh sách chuỗi theo thứ tự bảng chữ cái.
  4. 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)
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Python online