Làm thế nào để bạn sắp xếp một danh sách trong python?

Điều gì sẽ xảy ra nếu bạn có một danh sách các chuỗi [mục văn bản] và bạn cần sắp xếp chúng theo thứ tự bảng chữ cái? .  

Thuật toán sắp xếp đặt các phần tử của danh sách vào một thứ tự cụ thể. Chúng giúp giảm độ phức tạp của một vấn đề và thậm chí có thể tối ưu hóa các thuật toán khác

Vì sự phức tạp của nó, sắp xếp là một trong những vấn đề quan trọng nhất trong khoa học máy tính. Tóm lại, sắp xếp có thể được định nghĩa là sắp xếp các mục theo trình tự có thứ tự. Mặc dù ý tưởng về các thuật toán sắp xếp thoạt nhìn có vẻ đơn giản, nhưng không phải vậy;

Tự viết một hàm sắp xếp tốt không dễ. May mắn thay, Python đi kèm với các chức năng sắp xếp tích hợp sẵn. Bài viết này sẽ khám phá cách sử dụng

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 và
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 để sắp xếp theo thứ tự bảng chữ cái trong Python

Một ví dụ ngắn gọn về sắp xếp trong Python

Thuật toán sắp xếp có nhiều ứng dụng. Ví dụ: các tổ chức chính phủ, doanh nghiệp thương mại và tổ chức tài chính đều tổ chức dữ liệu của họ bằng cách sắp xếp dữ liệu. Lưu trữ dữ liệu được sắp xếp giúp các thuật toán tìm kiếm nó dễ dàng hơn sau này

Vì vậy, làm thế nào chính xác bạn có thể sắp xếp một danh sách theo thứ tự bảng chữ cái trong Python?

Ghi chú. Nếu bạn không biết danh sách là gì và tại sao nó là cấu trúc dữ liệu Python rất quan trọng, hãy xem bài viết của chúng tôi Danh sách Python, Bộ dữ liệu và Bộ. Bạn cũng có thể muốn tham khảo Thuật ngữ Python mà Người mới bắt đầu nên biết Phần 1 và Phần 2 để biết thêm thông tin. Cuối cùng, tôi khuyến khích bạn đăng ký khóa học Cấu trúc dữ liệu Python tương tác của chúng tôi để bạn có thể thực hành những kỹ năng mới này

Quay lại sắp xếp Python. Đây là mã cho một sắp xếp đơn giản

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> sorted_list = sorted[mylist]
>>> print[sorted_list]
['LearnPython.com', 'bicycle', 'pineapple', 'world']

Ở trên, danh sách

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
1 chứa các chuỗi “world”, “LearnPython. com”, “dứa” và “xe đạp” không theo thứ tự cụ thể. Chúng tôi muốn sắp xếp danh sách này và lưu trữ nó dưới dạng một biến mới có tên là
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
2. Trong Python, việc sắp xếp danh sách theo thứ tự bảng chữ cái dễ dàng như việc chuyển danh sách chuỗi sang phương thức
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0. Các chuỗi được sắp xếp theo thứ tự bảng chữ cái dựa trên chữ cái đầu tiên của chúng [A-Z]. Tuy nhiên, những từ bắt đầu bằng chữ in hoa đứng trước những từ bắt đầu bằng chữ in thường. [Ghi chú. Điều này có nghĩa là “Zebra” sẽ được liệt kê trước “apple” vì “Zebra” bắt đầu bằng chữ in hoa. ]

Bây giờ chúng ta đã hiểu sắp xếp là gì, chúng ta có thể bắt đầu với mã

Sắp xếp danh sách theo thứ tự bảng chữ cái trong Python với sort[]

Trước tiên, hãy sắp xếp một danh sách theo thứ tự bảng chữ cái trong Python bằng phương thức

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5. Theo mặc định,
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 sẽ sắp xếp các mục theo thứ tự tăng dần [A–Z]

Hãy lấy danh sách giống như trước đây

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']

Tuy nhiên, lưu ý rằng phương pháp

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 sẽ trực tiếp sửa đổi danh sách các mục ban đầu và sẽ không thể hoàn tác bất kỳ thay đổi nào

Nếu muốn sắp xếp các mục theo thứ tự giảm dần [Z–A], bạn có thể thực hiện bằng cách đặt tham số đảo ngược  trong

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 là
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
8 hoặc
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
9

________số 8

Và ở đây chúng tôi đi.

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
1 hiện được sắp xếp theo thứ tự giảm dần

Điều quan trọng cần lưu ý là hàm

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 sắp xếp tại chỗ, tôi. e. mà không có bất kỳ yêu cầu không gian bổ sung. Theo Wikipedia

Thuật toán tại chỗ biến đổi dữ liệu đầu vào mà không cần cấu trúc phụ trợ

Ý tưởng đằng sau thuật toán tại chỗ là hiệu quả về không gian. Nói cách khác, chúng tôi muốn sử dụng tối thiểu tài nguyên phần cứng để hoàn thành tác vụ. Về cơ bản, đầu ra được tạo ra trong cùng một không gian bộ nhớ chứa đầu vào; . Điều này tránh sử dụng hai lần dung lượng lưu trữ bằng cách giữ một bản sao của đầu vào

Vì vậy, bạn có nên sử dụng sắp xếp[]?

Nếu bạn đang làm việc với dữ liệu quan trọng và thậm chí có khả năng bạn sẽ cần truy xuất dữ liệu gốc trong tương lai, thì

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 không phải là lựa chọn tốt nhất vì nó sửa đổi danh sách gốc

Mặt khác, nếu dữ liệu là bản sao hoặc dữ liệu làm việc không quan trọng, thì

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 có thể là một lựa chọn tốt. Một tùy chọn khác là sử dụng
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 thay thế

Sắp xếp danh sách theo thứ tự bảng chữ cái trong Python với sorted[]

Python cũng có hàm

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 mà chúng ta đã sử dụng trong ví dụ mở đầu. Trái ngược với
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5, phương pháp này không sửa đổi danh sách ban đầu; . Ví dụ

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> sorted_list = sorted[mylist]
>>> print[sorted_list]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
2

Ở đây,

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[reverse=True]
>>> print[mylist]
['world', 'pineapple', 'bicycle', 'LearnPython.com']
7 đã sắp xếp được lưu trữ trong một biến có tên là
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[reverse=True]
>>> print[mylist]
['world', 'pineapple', 'bicycle', 'LearnPython.com']
8. Chúng ta luôn có thể truy cập biến
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[reverse=True]
>>> print[mylist]
['world', 'pineapple', 'bicycle', 'LearnPython.com']
7

Tương tự như

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5,
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 cũng có đối số
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> sorted_list = sorted[mylist]
>>> print[sorted_list]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
22 mặc định là Sai. Hãy đặt nó thành
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
8 để sắp xếp lại
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[reverse=True]
>>> print[mylist]
['world', 'pineapple', 'bicycle', 'LearnPython.com']
7 theo thứ tự giảm dần

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0

Sắp xếp danh sách theo thứ tự bảng chữ cái trong Python bằng phím

Theo mặc định,

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 và
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 sử dụng toán tử so sánh
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> sorted_list = sorted[mylist]
>>> print[sorted_list]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
27. Bạn có thể sửa đổi thứ tự được sử dụng khi sắp xếp bằng cách chỉ định đối số chính

Trước đây, chúng ta đã thấy rằng

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 và
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 ưu tiên chuỗi chữ hoa. Tuy nhiên, chúng ta có thể muốn phân loại không phân biệt chữ hoa chữ thường. Điều này có thể được thực hiện bằng cách đặt đối số chính thành
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
00 [chuyển đổi tất cả các chuỗi thành ký tự chữ thường]. Để sử dụng kiểu sắp xếp này trên dữ liệu của bạn, bạn sẽ cần một hàm hoặc bất kỳ hàm có thể gọi nào khác nhận một đối số và trả về một khóa được sử dụng để sắp xếp. Kỹ thuật này nhanh vì chức năng chính chỉ được gọi một lần cho mỗi đầu vào

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5

Và tương tự với

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
7

Chúng tôi cũng có thể sử dụng hàm

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
02 tùy chỉnh làm đối số chính. Giả sử, tôi có một danh sách các bộ chứa tên, nghề nghiệp và vị trí của mọi người. Chúng tôi muốn sắp xếp chúng theo thứ tự tăng dần dựa trên mục thứ hai của mỗi bộ dữ liệu. Điều này có thể được thực hiện với chức năng
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
02 tùy chỉnh

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0

Đầu ra là một danh sách được sắp xếp theo thứ tự bảng chữ cái dựa trên thành phố vì

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
04 truy cập mục thứ hai của bộ dữ liệu [i. e. tên thành phố]. Bạn có thể tìm hiểu thêm về cách sắp xếp lambda trong Python trong bài viết trước của tôi về các hàm sắp xếp tùy chỉnh

Hãy xem ví dụ trên, nhưng lần này với

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
2

Kết quả là như nhau, nhưng chúng tôi không có quyền truy cập vào danh sách người ban đầu nữa

Tính ổn định của các thuật toán sắp xếp của Python

Cuối cùng,

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
5 và
>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
0 được đảm bảo ổn định. Sắp xếp ổn định có nghĩa là hai đối tượng có khóa giống hệt nhau xuất hiện theo cùng thứ tự trong đầu ra được sắp xếp giống như trong đầu vào ban đầu. Nói cách khác, sắp xếp ổn định đảm bảo rằng thứ tự ban đầu của dữ liệu có cùng thứ hạng được giữ lại ở đầu ra

Tính ổn định của thuật toán sắp xếp cho phép khả năng có nhiều phiên bản được sắp xếp chính xác khác nhau của danh sách gốc

Các thuật toán sắp xếp ổn định rất cần thiết để duy trì thứ tự các phần tử bằng nhau. Để được coi là như vậy, chúng không nên thay đổi thứ tự tương đối của các phần tử được so sánh. Điều này giúp ích cho việc sắp xếp, chẳng hạn như nếu chúng ta cần thực hiện việc đó trong nhiều lượt [chẳng hạn như sắp xếp theo thành phố và nghề nghiệp] hoặc đại loại như thế

Mặt khác, sắp xếp không ổn định có thể xáo trộn một phần tử trong khi sắp xếp theo phần tử khác. Trong trường hợp này, việc sắp xếp theo thành phố có thể xáo trộn thứ tự tên, dẫn đến một danh sách trong đó mọi người được sắp xếp theo thành phố nhưng trong một thành phố, họ không được sắp xếp theo tên, mặc dù ban đầu họ được sắp xếp theo tên

Điều này đặc biệt quan trọng khi bạn đang xử lý các danh sách phức tạp hơn. Ví dụ, bạn có thể có một danh sách các bộ với một chuỗi là phần tử đầu tiên. Bạn có thể sắp xếp danh sách theo thứ tự bảng chữ cái theo đối số đầu tiên, nhưng thứ tự ban đầu cho đối số thứ hai của mỗi bộ dữ liệu được giữ nguyên

Sẵn sàng để thực hành Sắp xếp trong Python?

Bài viết này đã khám phá cách sắp xếp danh sách theo thứ tự bảng chữ cái trong Python. Chúng tôi đã khám phá ra cách sử dụng

>>> mylist = ["world", "LearnPython.com", "pineapple", "bicycle"]
>>> mylist.sort[]
>>> print[mylist]
['LearnPython.com', 'bicycle', 'pineapple', 'world']
08 để sắp xếp trong Python và chúng khác nhau như thế nào. Chúng tôi cũng đã đề cập ngắn gọn về tính ổn định của các thuật toán sắp xếp trong Python

Bây giờ bạn đã có kiến ​​thức vững chắc về sắp xếp trong Python, hãy tiếp tục và triển khai các giải pháp của riêng bạn bằng cách chơi với các đoạn mã ở trên.  

Cuối cùng, đừng quên kiểm tra khóa học Thuật toán tích hợp trong Python tương tác của chúng tôi. Nó cung cấp cho bạn thực hành vững chắc, thực hành về lập trình với Python. Bạn cũng có thể truy cập LearnPython. com để tìm hiểu thêm về các khóa học Python của chúng tôi.  

Danh sách Python được sắp xếp như thế nào?

Danh sách được sắp xếp . [Bạn sẽ thấy một kiểu dữ liệu Python không có thứ tự trong hướng dẫn tiếp theo về từ điển. ]The order in which you specify the elements when you define a list is an innate characteristic of that list and is maintained for that list's lifetime. [You will see a Python data type that is not ordered in the next tutorial on dictionaries.]

Cách nhanh nhất để sắp xếp danh sách trong Python là gì?

Cách dễ nhất để sắp xếp là sử dụng hàm sorted[list] , hàm này lấy một danh sách và trả về một danh sách mới với các phần tử đó trong . Danh sách ban đầu không thay đổi. Thông thường nhất là chuyển một danh sách vào hàm sorted[], nhưng trên thực tế, nó có thể lấy bất kỳ loại bộ sưu tập có thể lặp nào làm đầu vào.

Chủ Đề