Sort() có thể được sử dụng cho các chuỗi trong python không?

Mọi lập trình viên có thể đã phải đối mặt với nhu cầu sắp xếp dữ liệu tại một số thời điểm. Trong bài viết này, chúng ta sẽ thảo luận về cách sắp xếp một chuỗi trong Python. Một chuỗi có thể được sắp xếp bằng cách sắp xếp các ký tự của nó theo một thứ tự cụ thể,. e. tăng dần hoặc giảm dần, dựa trên các giá trị ASCII của chúng. Sau khi sắp xếp một chuỗi, chúng tôi nhận được một đầu ra được sắp xếp theo một thứ tự nhất định

Phạm vi

Bài viết này sẽ đề cập đến " cách sắp xếp một chuỗi trong Python ". Chúng ta sẽ học những cách sau đây để làm điều này --

  • Làm cách nào để sắp xếp một chuỗi trong python?
  • Học cách sắp xếp một chuỗi bằng cách sử dụng các phương thức sort[] và join[] tích hợp sẵn của python
  • Sắp xếp một chuỗi bằng cách sử dụng vòng lặp while và vòng lặp for [triển khai sắp xếp bong bóng]

Bài viết tổng thể này sẽ đáp ứng phạm vi chúng tôi đã đề cập về. Vậy hãy bắt đầu

Giới thiệu

Sắp xếp một chuỗi trong Python là quá trình đặt một nhóm ký tự theo một thứ tự cụ thể, có thể tăng dần hoặc giảm dần dựa trên giá trị ASCII của chúng

Ghi chú. ASCII là bộ ký tự 7 bit chứa 128 ký tự. Nó chứa các số từ 0-9, các chữ cái tiếng Anh viết hoa và viết thường từ A đến Z và một số ký tự đặc biệt, được sử dụng bởi các máy tính hiện đại

Kết quả ta nhận được sau khi sắp xếp một chuỗi theo một thứ tự xác định

Trên đây là một ví dụ về sắp xếp một chuỗi. Khi chúng tôi sắp xếp chuỗi, chúng được sắp xếp theo thứ tự bảng chữ cái, mà mã python của chúng tôi quyết định dựa trên các giá trị ASCII của chúng. Ký tự đến trước trong bảng chữ cái có giá trị ASCII nhỏ hơn ký tự đến sau và ngược lại

Sau khi tìm hiểu về sắp xếp trong Python là gì, hãy xem các cách khác nhau để sắp xếp một chuỗi trong Python

Sử dụng Phương thức sắp xếp sẵn có của Python [] và Tham gia []

Hàm sorted[] trong Python trả về một "danh sách đã sắp xếp" của lần lặp đã cho [list,tuple,set,v.v. ] mục tiêu. Chúng ta cũng có thể chỉ định thứ tự tăng dần hoặc giảm dần trong hàm của mình

Phương thức tham gia [] lấy tất cả các mục trong một lần lặp [danh sách, bộ dữ liệu, bộ, v.v. ] và nối chúng thành một chuỗi. Nó nối chuỗi trên cơ sở dấu tách được cung cấp. Dấu phân cách có nghĩa là giá trị sẽ được sử dụng để nối chuỗi, giả sử dấu cách [" "] hoặc dấu gạch ngang ["-"], v.v. Dựa trên dấu tách được cung cấp, phương thức tham gia của chúng tôi nối chuỗi với nó

Do đó, chúng ta có thể sử dụng kết hợp phương thức sorted[] và join[] để sắp xếp chuỗi của mình. sorted[] sẽ trả về một danh sách đã sắp xếp và join[] sẽ nối danh sách đã sắp xếp thành một chuỗi

Mã số

#python program to demonstrate sorting of a string using sorted and join[] method
def sort_string[s]:
    #First sort the string using sorted[]
    #store the list returned in ls
    ls = sorted[s]
    #join the list ls using join[]
    ans = ''.join[ls]
    return ans

#pass string to our function
print[sort_string["python"]]

đầu ra

Giải trình

  • Chúng tôi chuyển chuỗi của mình tới sorted[] và nó trả về một danh sách các ký tự được sắp xếp. Chúng tôi lưu trữ kết quả trong biến ls của chúng tôi
  • Cuối cùng, chúng tôi chuyển danh sách của mình sang phương thức join[] và nối nó bằng dấu phân cách ''. Cuối cùng, chúng tôi trả lời câu trả lời của chúng tôi

Thời gian phức tạp. O[nLogn]O[nLogn]O[nLogn]

  • Vì chúng ta đang sử dụng hàm sorted[], trong trường hợp xấu nhất, hàm này cần O[nLogn]O[nLogn]O[nLogn] để sắp xếp, nên độ phức tạp về thời gian sẽ trở thành O[nLogn]O[nLogn]O[nLogn]

Độ phức tạp không gian. O[1]O[1]O[1]

  • Trong đoạn mã trên, chúng tôi đang sử dụng một danh sách để lưu trữ kết quả danh sách đã sắp xếp, vì vậy độ phức tạp của không gian là O[N], trong đó N là độ dài của danh sách. Tuy nhiên, trong trường hợp tốt nhất, chúng tôi có thể tránh gán nó vào danh sách và chuyển trực tiếp kết quả đã sắp xếp để tham gia. Trong trường hợp đó, Độ phức tạp không gian của chúng ta sẽ là O[1]

Sử dụng Sắp xếp [] + Giảm [] + lambda

Hàm reduce[fun,seq] được sử dụng để áp dụng một hàm cụ thể được truyền trong đối số của nó cho tất cả các thành phần danh sách được đề cập trong "dãy" được truyền cho nó. Chức năng này được định nghĩa trong mô-đun “funcools”

Ghi chú. Nó chỉ hoạt động cho python 2

Trong Python, các hàm ẩn danh [hàm không có tên] được định nghĩa bằng từ khóa lambda. Các hàm lambda có thể có bất kỳ số lượng đối số nào nhưng chỉ có một biểu thức. Biểu thức được đánh giá và trả về

Bây giờ, hãy xem cách chúng ta có thể sử dụng sorted[] + reduce[] + lambda để sắp xếp chuỗi trong Python

Mã số

#Python program to sort a string using sorted[] + reduce[] + lambda
import functools
def sort_string[str]:
    #First sort the string
    s = sorted[str]
    #Then concatenate the string using + operator
    #followed by the reduce function to apply 
    #the concatenation on all the values
    result = functools.reduce[lambda x, y: x + y, s ]
    return result

print[sort_string["kolkata"]]

đầu ra

Giải trình

  • Trước tiên, chúng tôi sắp xếp chuỗi của mình bằng cách sử dụng đã sắp xếp và lưu trữ kết quả của nó trong 's'
  • lamda x, y. x + y nối danh sách. Phương thức rút gọn áp dụng hàm lambda này cho tất cả các phần tử của danh sách
  • Ở đây, chúng tôi tham gia danh sách các ký tự được sắp xếp kết quả bằng cách sử dụng hàm lambda và hàm reduce[]

Sử dụng vòng lặp While trong Python

Chúng ta cũng có thể sử dụng phương thức vòng lặp while thông thường để sắp xếp chuỗi của mình trong Python. Tuy nhiên, nó hoàn toàn không phải là một phương pháp được đề xuất. Bạn chỉ có thể hiểu điều này vì lợi ích của kiến ​​​​thức

sort[] có hoạt động trên chuỗi không?

Phương thức sort[] sắp xếp các phần tử của một mảng tại chỗ và trả về tham chiếu cho cùng một mảng, hiện đã được sắp xếp. Thứ tự sắp xếp mặc định tăng dần, được xây dựng dựa trên việc chuyển đổi các phần tử thành chuỗi , sau đó so sánh các chuỗi giá trị đơn vị mã UTF-16 của chúng.

Sắp xếp hoạt động như thế nào trong chuỗi Python?

Sắp xếp chuỗi Python với Sorted . Hàm này lấy một mục có thể lặp lại và sắp xếp các phần tử theo một khóa nhất định . Giá trị mặc định cho khóa này là Không, so sánh trực tiếp các phần tử. Hàm trả về danh sách tất cả các phần tử đã được sắp xếp.

Chủ Đề