0
0
Posts
QQ
Quan Quanquanquan2411

Cách Sử Dụng Hàm sorted() và sort() Của Python

Đăng vào 7 tháng trước

• 3 phút đọc

Chủ đề:

Python

Trong Python, việc sắp xếp các phần tử trong một danh sách (list) là một tác vụ phổ biến và quan trọng. Python cung cấp hai hàm chính để thực hiện việc này: sorted()sort(). Cả hai hàm đều cho phép bạn sắp xếp các phần tử theo thứ tự tăng dần hoặc giảm dần, nhưng có một số khác biệt quan trọng cần lưu ý. Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng hai hàm này và các ví dụ minh họa.

Hàm sorted()

Hàm sorted() được sử dụng để tạo ra một danh sách mới với các phần tử được sắp xếp từ danh sách ban đầu. Danh sách gốc không bị thay đổi.

Cú pháp:

python Copy
sorted(iterable, key=None, reverse=False)
  • iterable: Đối tượng lặp lại (như list, tuple, dict, set, ...) cần được sắp xếp.
  • key (tùy chọn): Hàm hoặc lambda được sử dụng để trích xuất khóa so sánh từ mỗi phần tử trong iterable.
  • reverse (tùy chọn): Nếu True, kết quả sẽ được sắp xếp theo thứ tự giảm dần.

Ví dụ:

python Copy
# Sắp xếp list số theo thứ tự tăng dần
numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Output: [1, 2, 5, 8, 9]

# Sắp xếp list chuỗi theo thứ tự giảm dần
fruits = ['apple', 'banana', 'cherry', 'date']
sorted_fruits = sorted(fruits, reverse=True)
print(sorted_fruits)  # Output: ['date', 'cherry', 'banana', 'apple']

# Sắp xếp list tuple theo chiều dài tăng dần
tuples = [(1, 3), (4, 2), (2, 1), (3, 4)]
sorted_tuples = sorted(tuples, key=lambda x: len(x))
print(sorted_tuples)  # Output: [(2, 1), (1, 3), (4, 2), (3, 4)]

Phương thức sort()

Phương thức sort() được sử dụng để sắp xếp các phần tử trong chính danh sách ban đầu. Danh sách gốc sẽ bị thay đổi sau khi sắp xếp.

Cú pháp:

python Copy
list.sort(key=None, reverse=False)
  • key (tùy chọn): Hàm hoặc lambda được sử dụng để trích xuất khóa so sánh từ mỗi phần tử trong danh sách.
  • reverse (tùy chọn): Nếu True, danh sách sẽ được sắp xếp theo thứ tự giảm dần.

Ví dụ:

python Copy
# Sắp xếp list số theo thứ tự tăng dần
numbers = [5, 2, 8, 1, 9]
numbers.sort()
print(numbers)  # Output: [1, 2, 5, 8, 9]

# Sắp xếp list chuỗi theo thứ tự giảm dần
fruits = ['apple', 'banana', 'cherry', 'date']
fruits.sort(reverse=True)
print(fruits)  # Output: ['date', 'cherry', 'banana', 'apple']

# Sắp xếp list dict theo giá trị tăng dần
people = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': 20}]
people.sort(key=lambda x: x['age'])
print(people)  # Output: [{'name': 'Charlie', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}]

Khác biệt giữa sorted() và sort()

Mặc dù cả hai hàm sorted()sort() đều được sử dụng để sắp xếp các phần tử, nhưng chúng có một số khác biệt quan trọng:

  1. Tác động lên danh sách gốc: sorted() tạo ra một danh sách mới với các phần tử được sắp xếp, trong khi sort() sắp xếp trực tiếp trên danh sách gốc.
  2. Kiểu trả về: sorted() trả về một danh sách mới đã được sắp xếp, trong khi sort() không trả về giá trị nào (trả về None).
  3. Đối tượng có thể sắp xếp: sorted() có thể sắp xếp bất kỳ đối tượng lặp lại nào (như list, tuple, dict, set, ...), trong khi sort() chỉ có thể sắp xếp các đối tượng list.
  4. Hiệu suất: Trong hầu hết các trường hợp, sort() sẽ nhanh hơn sorted() vì nó không cần tạo ra một danh sách mới.

Nói chung, nếu bạn muốn sắp xếp một danh sách mà không cần tạo ra một danh sách mới, hãy sử dụng sort(). Ngược lại, nếu bạn muốn giữ nguyên danh sách gốc và tạo ra một danh sách mới với các phần tử được sắp xếp, hãy sử dụng sorted().

Kết luận

Trong Python, sorted()sort() là hai hàm quan trọng để sắp xếp các phần tử trong danh sách. Mặc dù chúng có chức năng tương tự, nhưng có một số khác biệt quan trọng cần lưu ý. Bằng cách hiểu rõ cách sử dụng và khác biệt giữa hai hàm này, bạn có thể lựa chọn và sử dụng chúng một cách hiệu quả trong các dự án của mình.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào