Khi làm việc với chuỗi trong Python, bạn có thể cần phải 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 () và Replace () giúp chúng ta 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ề

Bạn đang xem: tìm và thay thế python

Khi làm việc với chuỗi trong Python, bạn có thể cần phải tìm kiếm trong chuỗi cho một mẫu 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

Các 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ỗ.

Chuỗi là các chuỗi 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 có độ dài n 0,1,2, .., (n-1) .

Chúng tôi cũng có thể sử dụng lập chỉ mục phủ định, trong đó phần tử cuối cùng ở chỉ mục -1 , phần tử thứ hai đến cuối cùng ở chỉ mục -2 , v.v. p> Ví dụ: chúng ta có my_string chứa chuỗi "writer" . Hãy thử thay đổi điều này thành "write" bằng cách đặt ký tự cuối cùng thành "s" .

  my_string = "nhà văn"
 

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

  my_string [-1] = "s"

# Đầu ra
-------------------------------------------------- -------------------------
TypeError Traceback (cuộc gọi gần đây nhất)
& lt; ipython-input-1-670491032ba6 & gt; trong & lt; mô-đun & gt; ()
      1 my_string = "nhà văn"
---- & gt; 2 my_string [-1] = "s"

TypeError: Đối tượng 'str' không hỗ trợ gán mục  

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ến và phép gán mà chúng tôi đã cố gắng thực hiện không hợp lệ.

Tuy nhiên, chúng tôi thường có thể 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 các chuỗi hiện có và trả về các chuỗi mới được sửa đổi. Chuỗi hiện tại không được sửa đổi.

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

Cách Sử dụng find () để Tìm kiếm Mẫu trong Chuỗi Python

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

  & lt; this_string & gt; .find (& lt; this_pattern & gt;)  

Chuỗi nhập mà chúng tôi muốn tìm kiếm qua đượ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 do trình giữ chỗ this_pattern đưa ra.

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

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

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

Python find () Ví dụ về phương pháp

Hãy lấy một chuỗi ví dụ "Tôi thích viết mã bằng Python!" .

  my_string = "Tôi thích viết mã bằng Python!"
my_string.find ("Python")

# Đầu ra
18  

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

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

▶ 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")

# Đầu ra
-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. Phương thức find () đã trả về -1 , như đã thảo luận trước đó.

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

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

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

  & lt; this_string & gt; .find (& lt; this_pattern & gt; , & lt; start_index & gt;, & lt; end_index & gt;)  

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

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

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

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

  & lt; this_string & gt; .index (& lt; this_pattern & gt;)  

index () < Phương thức / code> hoạt động rất giống với phương thức find () .

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

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

Python index () Ví dụ về phương pháp

Hãy sử dụng chuỗi my_string = "Tôi thích viết mã bằng Python!" từ ví dụ trước của chúng ta.

  my_string.index ("Python" )

# Đầu ra
18
 

Trong trường hợp này, kết quả giống với kết quả của phương thức find () .

Nếu chúng tôi tìm kiếm một chuỗi con không phải là hiện trong chuỗi của chúng ta, phương thức index () tạo ra một ValueError . Điều này được hiển thị trong đoạn mã bên dưới.

  my_string.index ("JavaScript")

# Đầu ra
-------------------------------------------------- -------------------------
ValueError Traceback (lần gọi gần đây nhất)
& lt; ipython-input-4-377f7c374e16 & gt; trong & lt; mô-đun & gt; ()
---- & gt; 1 my_string.index ("JavaScript")

ValueError: không tìm thấy chuỗi con  

Trong phần tiếp theo, chúng ta sẽ học 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 phương thức Replace () . Cú pháp chung được hiển thị bên dưới:

  & lt; this_string & gt; .replace (& lt; this & gt;, & lt; with_this & gt;)  

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

  • Phương thức Replace () tìm kiếm mẫu this_string qua this .
  • Nếu có this pattern, nó trả về một chuỗi mới trong đó tất cả các lần xuất hiện của mẫu này được thay thế bằng mẫu được chỉ định bởi with_this đối số.
  • Nếu không tìm thấy mẫu this trong this_string , thì chuỗi được trả về giống với 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 đối số tùy chọn 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ế.

  & lt; this_string & gt; .replace (& lt; this & gt;, & lt; with_this & gt ;, n_occurrences)   

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

▶ Hãy xem một số ví dụ để hiểu cách hoạt động của hàm Replace () .

Python Replace () Ví dụ về phương thức

Bây giờ, hãy xác định lại my_string thành như sau:

  Tôi thích viết mã bằng C ++.
C ++ rất dễ học.
Tôi đã viết mã bằng C ++ được 2 năm rồi.:)

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

  my_string = "Tôi thích viết mã bằng C ++. \ nC ++ rất dễ học. \ n Tôi đã viết mã bằng C ++ được 2 năm rồi. :)"

 

Bây giờ, hãy thay thế tất cả các lần xuất hiện của "C ++" bằng "Python" , như sau:

 < code class = "language-Python"> my_string.replace ("C ++", "Python")

# Đầu ra
'Tôi thích viết mã bằng Python. \ NPython rất dễ học. \ NTôi đã viết mã bằng Python được 2 năm rồi.:)'

thay thế () < / code> phương thức trả về một chuỗi, chúng tôi thấy các ký tự \ n trong đầu ra. Đối với ký tự \ n để giới thiệu ngắt dòng, chúng ta có thể in ra chuỗi như hình dưới đây:

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


# Đầu ra
Tôi thích viết mã bằng Python.
Python rất dễ học.
Tôi đã viết mã bằng Python được 2 năm rồi.:)

Trong ví dụ trên, chúng tôi 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 cũng sẽ sử dụng đối số n_occurrences bổ sung.

Đoạn mã sau trả về một chuỗi trong đó 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))

# Đầu ra
Tôi thích viết mã bằng Python.
Python rất dễ học.
Tôi đã viết mã bằng C ++ được 2 năm rồi.:)

Đoạn mã sau trả về một chuỗi trong đó chỉ 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))

# Đầu ra
Tôi thích viết mã bằng Python.
C ++ rất dễ học.
Tôi đã viết mã bằng C ++ được 2 năm rồi.:)

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

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

# Đầu ra
Tôi thích viết mã bằng C ++.
C ++ rất dễ học.
Tôi đã viết mã bằng C ++ được 2 năm rồi.:)

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 phương thức find () index ()
  • Cách tìm và thay thế các mẫu hoặc chuỗi con bằng phương thức Replace ()

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

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


Xem thêm những thông tin liên quan đến chủ đề tìm và thay thế python

Python Tutorial: Finding and replacing

  • Tác giả: DataCamp
  • Ngày đăng: 2020-03-09
  • Đánh giá: 4 ⭐ ( 8747 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Want to learn more? Take the full course at https://learn.datacamp.com/courses/regular-expressions-in-python at your own pace. More than a video, you'll learn hands-on coding & quickly apply skills to your daily work.

    ---

    Finally, we'll talk about different methods that allow us to search or replace substrings.

    Python has several built-in methods that will help you search a target string for a specified substring.

    The first method is dot find. As you can see in the slide, it takes the desired substring as a mandatory argument. You can specify two other arguments. An inclusive starting position and an exclusive ending position.

    In the example code, we search for Waldo in the string Where's Waldo?.

    The dot find method returns the lowest index in the string where it can find the substring, in this case, eight.

    If we search for Wenda, the substring is not found and the method returns minus one.

    Now, we check if we can find Waldo between characters number zero and five. In the code, we specify the starting position, zero, and the ending position, six, because this position is not inclusive.

    The dot find method will not find the substring and returns minus one as we see in the output.

    The dot index method is identical to dot find.

    In the slide, we see that it takes the desired substring as a mandatory argument. It can take optional starting and ending positions as well.
    In the example, we search again for Waldo using dot index.
    We get eight again.
    When we look for a substring that is not there, we have a difference.
    The dot index method raises an exception, as we can see in the output.

    We can handle this using the try-except block. In the slide, you can observe the syntax. The try part will test the given code. If any error appears the except part will be executed obtaining the following output as a result.

    The dot count method searches for a specified substring in the target string. It returns the number of non-overlapping occurrences. In simple words, how many times the substring is present in the string.

    The syntax of dot count is very similar to the other methods as we can observe.

    In the example, we use the dot count method to get how many times fruit appears.

    In the output, we see that is two.

    Then, we limit the occurrences of fruit between character zero and fifteen of the string as we can observe in the code.

    The method will return 1. Remember that starting position is inclusive, but the ending is not.

    Sometimes you will want to replace occurrences of a substring with a new substring.

    In this case, Python provides us with the dot replace method. As we see in the slide, it takes three arguments: the substring to replace, the new string to replace it, and an optional number that indicates how many occurrences to replace.

    In the example code, we replace the substring house with car.

    The method will return a copy with all house substrings replaced.

    In the next example, we specified that we only want 2 of the occurrences to be replaced.
    We see in the output that the method return a copy of the string with the first two occurrences of house replaced by car.

    In this chapter, we walked through learning how to manipulate strings, a valuable skill for any data science project. You saw how to slide, concatenate and adjust cases of strings, how to split them into pieces and join them back together, how to remove characters and finally how to find, count and replace occurrences of substrings.

    Now, it's your time to put the concepts into practice.

    DataCamp PythonTutorial RegularExpressionsinPython

Thay thế ký tự trong chuỗi python

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 5 ⭐ ( 3614 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn thay thế ký tự trong chuỗi python. Bạn sẽ học được cách thay thế ký tự trong chuỗi python bằng phương thức replace trong bài viết này. Bạn cũng sẽ học được cách ứng dụng phương

Xử lý dữ liệu với Pandas trong Python

  • Tác giả: codelearn.io
  • Đánh giá: 3 ⭐ ( 7895 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Pandas là một thư viện của Ngôn ngữ lập trình Python cung cấp các cấu trúc dữ liệu nhanh, mạnh mẽ, linh hoạt và dễ sử dụng.

Python: Hàm xử lý chuỗi (string)

  • Tác giả: v1study.com
  • Đánh giá: 5 ⭐ ( 2283 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ngôn ngữ lập trình Python hỗ trợ cho chúng ta khá nhiều hàm để xử lý hay thao tác với chuỗi. Xin được nhắc lại, chuỗi trong Python phải được đặt trong cặp

Tìm kiếm và thay thế một dòng trong một tệp bằng Python

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 2524 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Tôi đoán một cái gì đó như thế này nên làm điều đó. Về cơ bản,…

Hàm replace() trong Python

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 9806 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm replace() trong Python trả về một bản sao của chuỗi ban đầu sau khi đã thay thế các chuỗi con cũ bằng chuỗi con mới.

Regular Expression trong Python

  • Tác giả: vietjack.com
  • Đánh giá: 5 ⭐ ( 4199 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Regular Expression trong Python - Học Python cơ bản và nâng cao theo các bước đơn giản từ Tổng quan, Cài đặt, Biến, Toán tử, Cú pháp cơ bản, Hướng đối tượng, Vòng lặp, Chuỗi, Number, List, Dictionary, Tuple, Module, Xử lý ngoại lệ, Tool, Exception Handling, Socket, GUI, Multithread, Lập trình mạng, Xử lý XML.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Mảng trong Java - cách sử dụng mảng trong java

By ads_php