HomeLập trìnhPythonHướng dẫn về...

Hướng dẫn về phương pháp chuỗi Python – Cách sử dụng find() và replace() trên Chuỗi Python


Khi làm việc với các chuỗi trong Python, bạn có thể cần tìm kiếm một mẫu trong các chuỗi hoặc thậm chí thay thế các phần của chuỗi bằng một chuỗi con khác.

Python có các phương thức chuỗi hữu ích find()replace() giúp chúng tôi thực hiện các tác vụ xử lý chuỗi này.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về hai phương thức chuỗi này với mã ví dụ.

Tính bất biến của Chuỗi Python

Chuỗi trong Python là bất biến. Do đó, chúng tôi không thể sửa đổi chuỗi tại chỗ.

Các chuỗi là các lần lặp Python tuân theo lập chỉ mục bằng không. Các chỉ số hợp lệ cho một chuỗi độ dài n0,1,2,..,(n-1).

Chúng ta cũng có thể sử dụng lập chỉ mục tiêu cựctrong đó phần tử cuối cùng nằm ở chỉ mục -1phần tử thứ hai đến cuối cùng nằm ở chỉ mục -2 và như thế.

Ví dụ, chúng ta có my_string đó giữ chuỗi "writer". Hãy thử thay đổi điều này thành "writes" bằng cách đặt ký tự cuối cùng thành "s".

my_string = "writer"

Hãy thử gán ký tự cuối cùng cho chữ cái "s" như hình bên dưới. Bằng cách lập chỉ mục phủ định, chúng tôi biết rằng chỉ mục của ký tự cuối cùng trong my_string-1.

my_string[-1]="s"

# Output
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-670491032ba6> in <module>()
      1 my_string = "writer"
----> 2 my_string[-1]="s"

TypeError: 'str' object does not support item assignment

Như được hiển thị trong đoạn mã trên, chúng tôi nhận được một TypeError. Điều này là do đối tượng chuỗi là bất biếnvà nhiệm vụ mà chúng tôi đã cố gắng thực hiện không hợp lệ.

Tuy nhiên, chúng tôi có thể thường xuyên cần sửa đổi các chuỗi. Và các phương thức chuỗi giúp chúng ta làm điều đó một cách dễ dàng.

Các phương thức chuỗi hoạt động trên hiện có chuỗi và trở lại mới chuỗi sửa đổi. Chuỗi hiện có là không phải sửa đổi.

Hãy chuyển sang phần tiếp theo để tìm hiểu về find()replace() các phương pháp.

Đọc thêm  Bản đồ Python () – Chức năng liệt kê với các ví dụ

Cách sử dụng find() để tìm kiếm các mẫu trong chuỗi Python

Bạn có thể sử dụng Python find() phương pháp để tìm kiếm trong một chuỗi cho một mẫu. Cú pháp chung được hiển thị bên dưới.

<this_string>.find(<this_pattern>)

Chuỗi đầu vào mà chúng tôi muốn tìm kiếm được biểu thị bằng trình giữ chỗ this_string. Mẫu mà chúng tôi muốn tìm kiếm được cung cấp bởi trình giữ chỗ this_pattern.

Bây giờ chúng ta hãy phân tích cú pháp trên.

  • Các find() phương pháp tìm kiếm thông qua this_string cho sự xuất hiện của this_pattern.
  • Nếu this_pattern có mặt, nó trả về chỉ mục bắt đầu của đầu tiên sự xuất hiện của this_pattern.
  • Nếu this_pattern không xảy ra trong this_stringnó trở lại -1.

▶ Hãy xem một số ví dụ.

Các ví dụ về phương thức find() của Python

Hãy lấy một chuỗi ví dụ "I enjoy coding in Python!".

my_string = "I enjoy coding in Python!"
my_string.find("Python")

# Output
18

Trong ví dụ trên, chúng tôi đã thử tìm kiếm "Python" Trong "my_string". Các find() phương thức trả về 18chỉ số bắt đầu của mẫu "Python".

Để xác minh xem chỉ mục được trả về có đúng không, chúng tôi có thể kiểm tra xem my_string[18]=="P" đánh giá để True.

▶ Bây giờ, chúng ta sẽ thử tìm kiếm một chuỗi con không có trong chuỗi của chúng ta.

my_string.find("JavaScript")

# Output
-1

Trong ví dụ này, chúng tôi đã thử tìm kiếm "JavaScript" không có trong chuỗi của chúng tôi. Các find() phương pháp đã trở lại -1như đã thảo luận trước đó.

Cách sử dụng find() để tìm kiếm các mẫu trong Python Substrings

Chúng ta cũng có thể sử dụng find() phương pháp tìm kiếm một mẫu trong một số nhất định chuỗi con hoặc lát cắt của một chuỗi, thay vì toàn bộ chuỗi.

Trong trường hợp này, các find() lời gọi phương thức có dạng sau:

<this_string>.find(<this_pattern>, <start_index>,<end_index>)

Điều này hoạt động rất giống với cú pháp đã thảo luận trước đó.

Sự khác biệt duy nhất là việc tìm kiếm mẫu không phải trên toàn bộ chuỗi. Nó chỉ hơn một lát cắt của chuỗi được chỉ định bởi start_index:end_index.

Cách sử dụng chỉ mục () để tìm kiếm các mẫu trong chuỗi Python

Để tìm kiếm sự xuất hiện của một mẫu trong một chuỗi, chúng ta cũng có thể sử dụng index() phương pháp. Cuộc gọi phương thức có cú pháp hiển thị bên dưới.

<this_string>.index(<this_pattern>)

Các index() phương pháp làm việc rất giống với phương pháp của find() phương pháp.

  • Nếu this_pattern có mặt trong this_stringcác index() phương thức trả về chỉ số bắt đầu của đầu tiên sự xuất hiện của this_pattern.
  • Tuy nhiên, nó làm tăng một ValueError nếu this_pattern không được tìm thấy trong this_string.

▶ Thời gian cho các ví dụ.

Đọc thêm  Học Python bằng cách xây dựng 5 trò chơi

Các ví dụ về phương thức index() trong Python

Hãy sử dụng chuỗi my_string = "I enjoy coding in Python!" từ ví dụ trước của chúng tôi.

my_string.index("Python")

# Output
18

Trong trường hợp này, đầu ra giống hệt với đầu ra của find() phương pháp.

Nếu chúng tôi tìm kiếm một chuỗi con không có trong chuỗi của chúng tôi, thì index() phương pháp nâng cao một ValueError. Điều này được hiển thị trong đoạn mã dưới đây.

my_string.index("JavaScript")

# Output
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-377f7c374e16> in <module>()
----> 1 my_string.index("JavaScript")

ValueError: substring not found

Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách tìm và thay thế các mẫu trong chuỗi.

Cách sử dụng replace() để tìm và thay thế các mẫu trong chuỗi Python

Nếu bạn cần tìm kiếm một mẫu trong chuỗi và thay thế nó bằng một mẫu khác, bạn có thể sử dụng replace() phương pháp. Cú pháp chung được hiển thị dưới đây:

<this_string>.replace(<this>,<with_this>)

Bây giờ chúng ta sẽ phân tích cú pháp này.

  • Các replace() phương pháp tìm kiếm thông qua this_stringthis mẫu.
  • Nếu this mẫu có mặt, nó trả về một chuỗi mới trong đó tất cả các sự xuất hiện của this mẫu được thay thế bằng mẫu được chỉ định bởi with_this tranh luận.
  • Nếu this mẫu không được tìm thấy trong this_stringchuỗi trả về giống như this_string.

Điều gì sẽ xảy ra nếu bạn chỉ muốn thay thế một số lần xuất hiện nhất định thay vì tất cả các lần xuất hiện của mẫu?

Trong trường hợp đó, bạn có thể thêm một không bắt buộc đối số trong lệnh gọi phương thức chỉ định số lần xuất hiện của mẫu mà bạn muốn thay thế.

<this_string>.replace(<this>,<with_this>, n_occurrences)

Trong cú pháp hiển thị ở trên, n_occurrences đảm bảo rằng chỉ những người đầu tiên n các lần xuất hiện của mẫu được thay thế trong chuỗi trả về.

▶ Hãy xem xét một số ví dụ để hiểu cách replace() chức năng hoạt động.

Đọc thêm  Python Parse JSON – Cách đọc tệp JSON

Các ví dụ về phương thức thay thế () của Python

Bây giờ chúng ta hãy xác định lại my_string như sau:

I enjoy coding in C++.
C++ is easy to learn.
I've been coding in C++ for 2 years now.:)

Điều này được hiển thị trong đoạn mã dưới đây:

my_string = "I enjoy coding in C++.\nC++ is easy to learn.\nI've been coding in C++ for 2 years now.:)"

Bây giờ chúng ta hãy thay thế tất cả các lần xuất hiện của "C++" với "Python"như thế này:

my_string.replace("C++","Python")

# Output
'I enjoy coding in Python.\nPython is easy to learn.\nI've been coding in Python for 2 years now.:)'

Như replace() phương thức trả về một chuỗi, chúng ta thấy \n các ký tự trong đầu ra. Cho \n để giới thiệu ngắt dòng, chúng ta có thể in ra chuỗi như hình bên dưới:

print(my_string.replace("C++","Python"))


# Output
I enjoy coding in Python.
Python is easy to learn.
I've been coding in Python for 2 years now.:)

Trong ví dụ trên, chúng ta thấy rằng tất cả các lần xuất hiện của "C++" đã được thay thế bằng "Python".

▶ Bây giờ, chúng ta sẽ sử dụng phần bổ sung n_occurrences lập luận là tốt.

Đoạn mã sau trả về một chuỗi có hai lần xuất hiện đầu tiên của "C++" được thay thế bằng "Python".

print(my_string.replace("C++","Python",2))

# Output
I enjoy coding in Python.
Python is easy to learn.
I've been coding in C++ for 2 years now.:)

Đoạn mã sau trả về một chuỗi chỉ có lần xuất hiện đầu tiên của "C++" được thay thế bằng "Python":

print(my_string.replace("C++","Python",1))

# Output
I enjoy coding in Python.
C++ is easy to learn.
I've been coding in C++ for 2 years now.:)

▶ Bây giờ, chúng ta thử thay thế một chuỗi con "JavaScript" điều đó không tồn tại trong my_string. Do đó, chuỗi trả về giống như my_string.

print(my_string.replace("JavaScript","Python"))

# Output
I enjoy coding in C++.
C++ is easy to learn.
I've been coding in C++ for 2 years now.:)

Phần kết luận

Trong hướng dẫn này, chúng ta đã học được những điều sau:

  • Cách tìm kiếm thông qua các chuỗi trong Python bằng cách sử dụng find()index() phương pháp và
  • Cách tìm và thay thế các mẫu hoặc chuỗi con bằng cách sử dụng replace() phương pháp

Hy vọng bạn thích hướng dẫn này.

Hẹn gặp lại tất cả các bạn sớm trong một bài viết khác. Cho đến lúc đó, học tập vui vẻ!



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