HomeLập trìnhPythonSắp xếp danh...

Sắp xếp danh sách Python – Cách sắp xếp danh sách trong Python


Có nhiều lý do khiến bạn muốn sắp xếp danh sách trong các ứng dụng Python của mình.

Trong bài viết này, tôi sẽ chỉ cho bạn cách sắp xếp danh sách theo thứ tự tăng dần và giảm dần tùy thuộc vào những gì bạn cần làm.

cái gì là List trong Python?

Danh sách là một loại dữ liệu trong Python nơi bạn có thể lưu trữ nhiều giá trị của các loại dữ liệu khác nhau (bao gồm cả danh sách lồng nhau).

Dưới đây là ví dụ về danh sách:

numList = [1, 2, 3, 4, 5]

stringList = ["banana", "orange", "apple"]

mixedList = [1, "banana", "orange", [5, 6]]

Bạn có thể truy cập các mục trong danh sách bằng cách sử dụng vị trí chỉ mục của chúng. Vị trí chỉ mục bắt đầu từ 0 trong danh sách:

stringList = ["banana", "orange", "apple"]

print(stringList[1])
# "orange"

Cách sắp xếp danh sách trong Python

Bạn có thể sắp xếp một danh sách trong Python bằng cách sử dụng sort() phương pháp.

Các sort() phương pháp cho phép bạn sắp xếp các mục trong một danh sách. Đây là cú pháp:

list.sort(reverse=True|False, key=sortFunction)

Phương thức chấp nhận hai đối số tùy chọn:

  • reverse: sắp xếp danh sách theo thứ tự ngược lại (giảm dần) nếu True hoặc theo thứ tự thông thường (tăng dần) nếu False (theo mặc định)
  • key: một chức năng bạn cung cấp để mô tả phương pháp sắp xếp
Đọc thêm  Python Tạo tệp – Cách nối và ghi vào tệp văn bản

Theo mặc định, bạn có thể sắp xếp các chuỗi và số theo thứ tự tăng dần mà không cần chuyển đối số cho phương thức này:

items = ["orange", "cashew", "banana"]

items.sort()
# ['banana', 'cashew', 'orange']

Ở trên, bạn có thể thấy rằng danh sách được sắp xếp có b đầu tiên (trong chuối), sau đó c (trong hạt điều), vì từ này đứng sau b, và cuối cùng, o (màu cam) sau này theo thứ tự bảng chữ cái.

Lưu ý rằng phương pháp này sửa đổi mảng ban đầu.

Đối với thứ tự giảm dần, bạn có thể chuyển đối số ngược lại:

items = [6, 8, 10, 5, 7, 2]

items.sort(reverse=True)
# [10, 8, 7, 6, 5, 2]

Bằng cách vượt qua True đến reverse đối số, bạn thấy những con số trong items danh sách được sắp xếp ngược lại, đó là thứ tự giảm dần.

Cách chỉ định chức năng sắp xếp

Điều gì sẽ xảy ra nếu bạn thử điều này trên một danh sách từ điển? Hãy xem nào:

items = [{
    'name': 'John',
    'age': 40
}, {
    'name': 'Mike',
    'age': 45
}, {
    'name': 'Jane',
    'age': 33
}, {
    'name': 'Asa',
    'age': 42
}]

items.sort()

Bạn sẽ gặp lỗi vì từ điển không thể sắp xếp được. Đây là nơi bạn có thể chỉ định một tiêu chí sắp xếp bằng cách sử dụng key tranh luận:

items = [
  {
  'name': 'John',
  'age': 40
  },
  {   
    'name': 'Mike',
    'age': 45
  },
  {   
    'name': 'Jane',
    'age': 33
  },
  {   
    'name': 'Asa',
    'age': 42
  }
]

def sortFn(dict):
  return dict['age']

items.sort(key=sortFn)
# [
#   {'name': 'Jane', 'age': 33},
#   {'name': 'John', 'age': 40},
#   {'name': 'Asa', 'age': 42},
#   {'name': 'Mike', 'age': 45}
# ]

Như bạn sẽ thấy trong khối mã ở trên, bằng cách sử dụng chức năng sắp xếp, chúng tôi đã xác định rằng quyết định sắp xếp phải dựa trên age khóa trong mỗi từ điển.

Đọc thêm  Cách trích xuất từ ​​khóa từ văn bản bằng TF-IDF và Python's Scikit-Learn

Nếu reverse đối số được thông qua như True ở đây, các từ điển được sắp xếp sẽ theo thứ tự giảm dần.

Đây là một ví dụ khác sử dụng chức năng sắp xếp:

items = ["cow", "elephant", "duck"]

def sortFn(value):
    return len(value)

items.sort(key=sortFn, reverse=True)
# ['elephant', 'duck', 'cow']

Trong trường hợp này, hàm sắp xếp trả về độ dài của các giá trị trong danh sách làm tiêu chí cho quá trình sắp xếp. Bằng cách vượt qua reverse của Truebạn có thể thấy rằng danh sách được sắp xếp có chuỗi dài hơn trước, tiếp theo là chuỗi ngắn hơn.

kết thúc

Khi xây dựng ứng dụng, có nhiều kịch bản để sắp xếp danh sách. Nó có thể sắp xếp một danh sách các tập tin dựa trên một last_opened Chìa khóa. Nó có thể là phân loại sản phẩm dựa trên một price Chìa khóa. Như bạn có thể thấy, có rất nhiều tiêu chí mà bạn có thể sử dụng trong các ứng dụng thực tế.

Trong bài viết này, chúng ta đã biết cách sắp xếp danh sách trong Python theo thứ tự tăng dần và giảm dần bằng các phương pháp khác nhau.



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