HomeLập trìnhPythonDanh sách sắp...

Danh sách sắp xếp Python – Cách sắp xếp theo thứ tự giảm dần hoặc tăng dần


Trong Python, bạn có thể sắp xếp dữ liệu bằng cách sử dụng sorted() phương pháp hoặc sort() phương pháp.

Trong bài viết này, tôi sẽ cung cấp các ví dụ mã cho sorted()sort() phương pháp và giải thích sự khác biệt giữa hai phương pháp.

Phương thức sort() trong Python là gì?

Phương pháp này lấy một danh sách và sắp xếp nó tại chỗ. Phương thức này không có giá trị trả về.

Trong ví dụ này, chúng tôi có một danh sách các số và chúng tôi có thể sử dụng sort() phương pháp sắp xếp danh sách theo thứ tự tăng dần.

my_list = [67, 2, 999, 1, 15]

# this prints the unordered list
print("Unordered list: ", my_list)

# sorts the list in place
my_list.sort()

# this prints the ordered list
print("Ordered list: ", my_list)
Screen-Shot-2021-09-02-at-1.41.09-PM

Nếu danh sách đã được sắp xếp thì nó sẽ trả về Không có trong bảng điều khiển.

my_list = [6, 7, 8, 9, 10]

# this will return None because the list is already sorted
print(my_list.sort())
Screen-Shot-2021-09-02-at-1.30.28-PM

Các sort() phương thức có thể nhận hai đối số tùy chọn được gọi là keyreverse.

key có giá trị của một hàm sẽ được gọi trên mỗi mục trong danh sách.

Trong ví dụ này, chúng ta có thể sử dụng len() đóng vai trò là giá trị của key tranh luận. key=len sẽ yêu cầu máy tính sắp xếp danh sách tên theo độ dài từ nhỏ nhất đến lớn nhất.

names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"]

print("Unsorted: ", names)
names.sort(key=len)
print("Sorted: ", names)
Screen-Shot-2021-09-02-at-2.11.37-PM

reverse có một giá trị boolean của True hoặc False.

Trong ví dụ này, reverse=True sẽ yêu cầu máy tính sắp xếp danh sách theo thứ tự bảng chữ cái đảo ngược.

names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"]

print("Unsorted: ", names)
names.sort(reverse=True)
print("Sorted: ", names)
Screen-Shot-2021-09-02-at-2.25.43-PM

Cách sử dụng phương thức sorted() trong Python

Phương thức này sẽ trả về một danh sách được sắp xếp mới từ một lần lặp. Ví dụ về các lần lặp sẽ là danh sách, chuỗi và bộ dữ liệu.

Đọc thêm  Với Open in Python – Ví dụ về cú pháp câu lệnh

Một điểm khác biệt chính giữa sort()sorted() đó là sorted() sẽ trả về một danh sách mới trong khi sort() sắp xếp danh sách tại chỗ.

Trong ví dụ này, chúng ta có một danh sách các số sẽ được sắp xếp theo thứ tự tăng dần.

sorted_numbers = sorted([77, 22, 9, -6, 4000])

print("Sorted in ascending order: ", sorted_numbers)
Ảnh chụp màn hình-2021-09-02-at-8.07.42-PM

Các sorted() phương pháp cũng có trong tùy chọn keyreverse tranh luận.

Trong ví dụ này, chúng ta có một danh sách các số được sắp xếp theo thứ tự giảm dần. reverse=True yêu cầu máy tính đảo ngược danh sách từ lớn nhất sang nhỏ nhất.

sorted_numbers = sorted([77, 22, 9, -6, 4000], reverse=True)

print("Sorted in descending order: ", sorted_numbers)
Screen-Shot-2021-09-02-at-8.15.06-PM

Một sự khác biệt quan trọng khác giữa sorted()sort() nó có phải là sorted() phương thức chấp nhận bất kỳ lần lặp nào trong khi phương thức sort() phương pháp chỉ hoạt động với danh sách.

Trong ví dụ này, chúng tôi có một chuỗi được chia thành các từ riêng lẻ bằng cách sử dụng split() phương pháp. Sau đó, chúng tôi sử dụng sorted() để sắp xếp các từ theo độ dài từ nhỏ nhất đến lớn nhất.

my_sentence = "Jessica found a dollar on the ground"

print("Original sentence: ", my_sentence)
print(sorted(my_sentence.split(), key=len))
Screen-Shot-2021-09-02-at-8.42.55-PM

Chúng tôi cũng có thể sửa đổi ví dụ này và bao gồm keyreverse tranh luận.

Ví dụ sửa đổi này bây giờ sẽ sắp xếp danh sách từ lớn nhất đến nhỏ nhất.

my_sentence = "Jessica found a dollar on the ground"

print("Original sentence: ", my_sentence)
print(sorted(my_sentence.split(), key=len, reverse=True))
Screen-Shot-2021-09-02-at-8.48.21-PM

Chúng ta cũng có thể sử dụng sorted() phương pháp trên tuples.

Trong ví dụ này, chúng tôi có một bộ sưu tập các tuples đại diện cho tên, tuổi và nhạc cụ của học sinh trong ban nhạc.

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

Chúng ta có thể sử dụng sorted() phương pháp sắp xếp dữ liệu này theo tuổi của học sinh. Các key có giá trị của một lambda chức năng yêu cầu máy tính sắp xếp theo độ tuổi theo thứ tự tăng dần.

Đọc thêm  Cách tạo máy chủ Django chạy uWSGI, NGINX và PostgreSQL trên AWS EC2 với Python 3.6

Một lambda chức năng là một chức năng ẩn danh không có tên. Bạn có thể xác định loại chức năng này bằng cách sử dụng lambda từ khóa.

lambda student: student[1]

Để truy cập một giá trị trong một tuple, bạn sử dụng ký hiệu ngoặc và số chỉ mục bạn muốn truy cập. Vì chúng ta bắt đầu đếm từ 0, nên giá trị tuổi sẽ là [1].

Đây là ví dụ hoàn chỉnh.

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

print(sorted(band_students, key=lambda student: student[1]))
Screen-Shot-2021-09-02-at-9.05.22-PM

Thay vào đó, chúng ta có thể sửa đổi ví dụ này và sắp xếp dữ liệu theo công cụ. chúng ta có thể sử dụng reverse để sắp xếp các nhạc cụ theo thứ tự bảng chữ cái đảo ngược.

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

print(sorted(band_students, key=lambda student: student[2], reverse=True))
Screen-Shot-2021-09-02-at-9.10.16-PM

Phần kết luận

Trong bài viết này, chúng ta đã học cách làm việc với Python sort()sorted() các phương pháp.

Các sort() chỉ hoạt động với danh sách và sắp xếp danh sách tại chỗ. Nó không có giá trị trả về.

Các sorted() phương thức hoạt động với bất kỳ lần lặp nào và trả về một danh sách được sắp xếp mới. Ví dụ về các lần lặp sẽ là danh sách, chuỗi và bộ dữ liệu.

Cả hai phương thức này đều có hai đối số tùy chọn là keyreverse.

key có giá trị của một hàm sẽ được gọi trên mỗi mục trong danh sách.

Đọc thêm  Python .split() – Tách chuỗi trong Python

reverse có một giá trị boolean của True hoặc False.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status