Python Phương thức chuỗi find() có ví dụ

⚡ Tóm tắt thông minh

Python Phương thức `string find()` là một phương thức tích hợp sẵn trả về chỉ mục của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi. Nó trả về -1 khi chuỗi con không có trong chuỗi, tránh gây ra ngoại lệ.

  • 🔍 Cú pháp: Hàm find() nhận một chuỗi con cùng với các chỉ số bắt đầu và kết thúc tùy chọn để giới hạn phạm vi tìm kiếm.
  • 🎯 Trận đấu đầu tiên: Hàm find() trả về chỉ số thấp nhất của lần xuất hiện đầu tiên, quét từ trái sang phải.
  • Không tìm thấy: Hàm find() trả về -1 thay vì báo lỗi khi chuỗi con không tồn tại.
  • 🔁 rfind(): Phương thức rfind() trả về chỉ số cao nhất, tìm kiếm từ phía bên phải.
  • ⚠️ mục lục(): Phương thức index() hoạt động giống như find() nhưng sẽ báo lỗi ValueError khi chuỗi con không tồn tại.
  • 🤖 Hỗ trợ AI: Các trợ lý lập trình AI tạo ra logic tìm kiếm() và hỗ trợ tìm kiếm chuỗi con trong các quy trình xử lý văn bản NLP.

Python Tìm chuỗi()

Là gì Python Tìm chuỗi()?

Python Tìm chuỗi() là một chức năng có sẵn trong Python Thư viện này dùng để tìm chỉ mục của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi cho trước. Hàm `find()` trả về -1 thay vì ném ra một ngoại lệ khi chuỗi con được chỉ định không có trong chuỗi cho trước. Đây là một trong những thư viện giúp tìm chỉ mục của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi cho trước. Hàm `find()` trả về -1 thay vì ném ra một ngoại lệ khi chuỗi con được chỉ định không có trong chuỗi cho trước. Pythonđược sử dụng nhiều nhất phương thức chuỗi để định vị văn bản.

Cú pháp của Python tìm chuỗi()

Cú pháp cơ bản của Python Hàm find() như sau:

string.find(substring,start,end)

Các tham số cho phương thức find()

Dưới đây là ba tham số của hàm find() trong Python:

  • chuỗi conĐây là chuỗi con bạn muốn tìm kiếm trong chuỗi đã cho.
  • Bắt đầu: (tùy chọn) Giá trị bắt đầu mà từ đó quá trình tìm kiếm chuỗi con sẽ bắt đầu. Mặc định là 0.
  • cuối: (tùy chọn) Giá trị kết thúc nơi quá trình tìm kiếm chuỗi con sẽ dừng lại. Theo mặc định, giá trị là độ dài của chuỗi.

Ví dụ về phương thức find() với giá trị mặc định

Các tham số được truyền đến Python Phương thức `find()` trả về một chuỗi con, tức là chuỗi bạn muốn tìm kiếm, cộng với giá trị `start` và `end`. Giá trị `start` mặc định là 0, và giá trị `end` là độ dài của chuỗi.

Trong ví dụ này, chúng ta sẽ sử dụng phương thức find() trong Python với các giá trị mặc định.

Phương thức `find()` sẽ tìm kiếm chuỗi con và trả về vị trí xuất hiện đầu tiên của chuỗi con đó. Nếu chuỗi con xuất hiện nhiều lần trong chuỗi đã cho, nó vẫn sẽ trả về chỉ mục hoặc vị trí của lần xuất hiện đầu tiên.

Ví dụ:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Đầu ra:

The position of Tutorials is at: 12

Ví dụ về find() sử dụng đối số bắt đầu

Bạn có thể tìm kiếm chuỗi con trong chuỗi đã cho và chỉ định vị trí bắt đầu tìm kiếm. Tham số `start` có thể được sử dụng cho mục đích này.

Ví dụ dưới đây chỉ định vị trí bắt đầu là 20, và phương thức find() trong Python Quá trình tìm kiếm sẽ bắt đầu từ vị trí 20. Ở đây, vị trí kết thúc sẽ là độ dài của chuỗi, vì vậy nó sẽ tìm kiếm cho đến hết chuỗi từ vị trí 20 trở đi.

Ví dụ:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Đầu ra:

The position of Tutorials is at 48

Ví dụ về find() sử dụng đối số bắt đầu và kết thúc

Bằng cách sử dụng các tham số bắt đầu và kết thúc, chúng ta có thể giới hạn phạm vi tìm kiếm thay vì tìm kiếm toàn bộ chuỗi.

Ví dụ:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Đầu ra:

The position of Tutorials is at 12

Ví dụ về phương thức find() để tìm vị trí của một chuỗi con cho trước trong một chuỗi.

Chúng ta biết rằng hàm `find()` giúp tìm chỉ mục của lần xuất hiện đầu tiên của một chuỗi con. Nó trả về `-1` nếu chuỗi con đó không có trong chuỗi đã cho. Ví dụ dưới đây cho thấy chỉ mục khi chuỗi có mặt và `-1` khi chuỗi con mà chúng ta đang tìm kiếm không được tìm thấy.

Ví dụ:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Đầu ra:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python chuỗi rfind()

Python Hàm rfind() tương tự như hàm find(), điểm khác biệt duy nhất là rfind() trả về chỉ số cao nhất của chuỗi con đã cho, trong khi find() trả về chỉ số thấp nhất, tức là chỉ số đầu tiên. Cả rfind() và find() đều trả về -1 nếu chuỗi con không tồn tại.

Trong ví dụ bên dưới, chúng ta có một chuỗi "Meet" GuruTrang web 99 hướng dẫn. Trang web tốt nhất dành cho Python Khóa hướng dẫn!” và sẽ cố gắng tìm vị trí của chuỗi con "Tutorials" bằng cách sử dụng find() và rfind(). Chuỗi con "Tutorials" xuất hiện hai lần trong chuỗi.

Đây là một ví dụ trong đó cả find() và rfind() đều được sử dụng.

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Đầu ra:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Kết quả cho thấy hàm find() trả về chỉ mục của chuỗi con Tutorials đầu tiên mà nó tìm thấy, trong khi hàm rfind() trả về chỉ mục cuối cùng của chuỗi con Tutorials.

Python chỉ số chuỗi()

Python Hàm `index()` trả về vị trí của chuỗi con đã cho, tương tự như hàm `find()`. Sự khác biệt duy nhất giữa hai hàm là `index()` sẽ ném ra một ngoại lệ nếu chuỗi con không có trong chuỗi chính, trong khi `find()` trả về -1.

Đây là một ví dụ hoạt động thể hiện hành vi của chỉ mục() và find().

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Đầu ra:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Chúng ta nhận được cùng một vị trí cho cả find() và index(). Hãy xem một ví dụ khi chuỗi con được cho không có trong chuỗi.

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Đầu ra:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Trong ví dụ trên, chúng ta đang cố gắng tìm vị trí của chuỗi con “test”. Chuỗi con này không có trong chuỗi đã cho, vì vậy khi sử dụng find() ta nhận được vị trí là -1, nhưng khi dùng index() thì lại báo lỗi, như đã hiển thị ở trên.

Để tìm tổng số lần xuất hiện của một chuỗi con

Để tìm tổng số lần xuất hiện của một chuỗi con trong chuỗi đã cho, chúng ta sẽ sử dụng hàm find(). PythonChúng ta sẽ sử dụng vòng lặp for để duyệt qua chuỗi từ vị trí 0 đến cuối chuỗi, tận dụng tham số startIndex cho hàm find().

Các biến startIndex và count sẽ được khởi tạo bằng 0. Bên trong vòng lặp for, chúng ta sẽ kiểm tra xem chuỗi con có tồn tại trong chuỗi đã cho hay không bằng cách sử dụng hàm find() với startIndex bằng 0.

Giá trị trả về từ hàm find(), nếu không phải là -1, sẽ cập nhật startIndex thành chỉ mục nơi tìm thấy chuỗi và đồng thời tăng giá trị count lên.

Đây là ví dụ hoạt động:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Đầu ra:

The total count of substring test is:  6

" Học nhiều hơn về Python Tách chuỗi()

Câu Hỏi Thường Gặp

Đúng vậy. Hàm find() khớp chính xác với chuỗi con, vì vậy “Hello”.find(“h”) trả về -1 trong khi “Hello”.find(“H”) trả về 0. Hãy chuyển đổi chuỗi bằng lower() hoặc upper() trước khi tìm kiếm không phân biệt chữ hoa chữ thường.

Toán tử `in` chỉ trả về `True` hoặc `False` để cho biết chuỗi con có tồn tại hay không. Hàm `find()` tiến xa hơn và trả về chỉ số chính xác của lần khớp đầu tiên, hoặc `-1` khi chuỗi con không tồn tại.

Đúng vậy. Hàm find() chấp nhận chỉ số bắt đầu và kết thúc âm, tức là đếm từ cuối chuỗi. Ví dụ: “Guru99”.find(“9”, -2) chỉ tìm kiếm hai ký tự cuối cùng và trả về vị trí của chúng.

Phương thức str.find() tìm kiếm từng kết quả khớp một. Để tìm tất cả các kết quả khớp trong một lần gọi duy nhất, hãy sử dụng mô-đun re: re.findall() trả về mọi chuỗi con khớp và re.finditer() trả về các đối tượng khớp với từng vị trí bắt đầu.

Phương thức `find()` chỉ hoạt động với chuỗi, vì vậy khi gọi nó trên một danh sách sẽ gây ra lỗi `AttributeError`. Để định vị một mục trong danh sách hoặc tuple, hãy sử dụng phương thức `index()` thay thế, phương thức này trả về vị trí của phần tử khớp đầu tiên.

Đúng vậy. Đối với việc tìm kiếm chuỗi con đơn giản, hàm find() được triển khai trong C và chạy nhanh hơn so với việc biên dịch biểu thức chính quy. Chỉ sử dụng mô-đun re khi bạn cần tìm kiếm theo mẫu, ký tự đại diện hoặc nhiều kết quả khớp.

Trong học máy và xử lý ngôn ngữ tự nhiên (NLP), hàm `find()` định vị các từ khóa, thẻ hoặc dấu phân cách trong quá trình làm sạch và phân tách văn bản. Việc phát hiện xem một chuỗi con có xuất hiện hay không, hoặc vị trí của nó, giúp xây dựng các đặc trưng và phân tích đầu vào của mô hình.

Đúng vậy. GitHub Copilot tự động hoàn thành các lệnh find(), rfind() và index() từ một đoạn mô tả ngắn gọn về mục tiêu của bạn. Các công cụ AI dựa trên tác nhân còn tiến xa hơn, tự viết logic tìm kiếm, thêm các tham số bắt đầu và kết thúc, và chạy các bài kiểm tra của bạn.

Tóm tắt bài viết này với: