Cách thay thế ký tự đặc biệt trong python

Ví dụ này tập trung vào python thay thế các ký tự đặc biệt trong chuỗi. Ở đây bạn sẽ học python thay thế tất cả các ký tự đặc biệt trong chuỗi. Chúng tôi sẽ sử dụng cách thay thế tất cả các ký tự đặc biệt trong chuỗi python. bạn có thể hiểu một khái niệm về cách thay thế nhiều ký tự đặc biệt trong một chuỗi trong python

Trong ví dụ này, tôi sẽ thêm biến myString với chuỗi hello. Sau đó, chúng tôi sẽ sử dụng hàm sub[] của thư viện re để thay thế tất cả các ký tự đặc biệt bằng khoảng trắng từ một chuỗi trong python. Vì vậy, không cần phải quảng cáo thêm, hãy xem các ví dụ đơn giản. Bạn có thể sử dụng các ví dụ này với phiên bản python3 [Python 3]

Vấn đề chung mà các lập trình viên gặp phải là xóa các ký tự không mong muốn khỏi chuỗi bằng Python. Nhưng đôi khi yêu cầu quá cao và yêu cầu xóa nhiều hơn 1 ký tự, nhưng một danh sách các ký tự độc hại đó. Chúng có thể ở dạng ký tự đặc biệt để xây dựng lại mật khẩu hợp lệ và nhiều ứng dụng khác có thể. Vì vậy, nhiệm vụ của chúng tôi là loại bỏ các ký tự không mong muốn khỏi chuỗi

Xóa biểu tượng khỏi chuỗi bằng str. isalnum[]

Phương thức isalnum[] trong Python String kiểm tra xem tất cả các ký tự trong một chuỗi đã cho có phải là chữ và số hay không. Nó trả về một boolean là True – Nếu tất cả các ký tự là chữ và số hoặc sai – Nếu một hoặc nhiều ký tự không phải là chữ và số

Python3




Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
0
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
1
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
2

 

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
0_______51
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
2
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
3
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
4
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
5
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
0
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
7
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
8

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
9
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
0

đầu ra

GeeksforGeeks

Xóa biểu tượng khỏi chuỗi bằng thay thế []

Người ta có thể sử dụng str. replace[] bên trong một vòng lặp để kiểm tra bad_char và sau đó thay thế nó bằng chuỗi rỗng do đó loại bỏ nó. Đây là cách tiếp cận cơ bản nhất và không hiệu quả trên quan điểm hiệu suất

Python3




Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
1

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
2
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
1
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
4
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
5
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
6
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
7
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
6
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
9
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
6
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
1
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
6
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
3
Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
4

Bạn có biết rằng Chuỗi là đối tượng bất biến trong Python không? . Do đó nảy sinh nhu cầu sử dụng các hàm khác nhau để có thể thao tác trên chuỗi. Trong bài viết này, chúng ta sẽ tìm hiểu cách thay thế nhiều ký tự trong một chuỗi trong python

Trước khi tiếp tục, hãy tìm hiểu một chút về Strings

Chuỗi là gì?

Trong Python, mọi thứ đều là đối tượng. Các chuỗi cũng là các đối tượng Python, nhưng chúng thường được định nghĩa là một chuỗi các ký tự được đặt giữa các dấu ngoặc kép [ ' ' hoặc " " ]. Các ký tự này có thể là a-z, A-Z, 0-9 hoặc ký tự đặc biệt [như $, %] và khoảng trắng [' ']

Bạn có ý nghĩa gì khi thay thế nhiều ký tự trong một chuỗi?

Nhu cầu thay thế một vài ký tự [có thể là một hoặc nhiều ký tự] từ một chuỗi thường xuất hiện khi xử lý sự cố. Nhưng câu hỏi đặt ra là bạn hiểu thế nào là thay thế nhiều ký tự trong một chuỗi?

Chuỗi có nhiều thao tác được thực hiện trên chúng. Nhưng khi chúng ta nói "thay thế các ký tự trong một chuỗi bằng Python", các trường hợp sau sẽ xuất hiện trong tâm trí

  1. Thay thế một ký tự trong Chuỗi bằng một ký tự khác. Ví dụ: Giả sử chúng ta có một chuỗi "Favtutor" và chúng ta muốn thay thế lần xuất hiện đầu tiên của 't' bằng 'T'. Bây giờ, vì chúng ta chỉ thay thế 't' bằng một 'T' khác, điều này được gọi là thay thế một ký tự đơn trong chuỗi
  2. Thay thế Tất cả các lần xuất hiện của một ký tự trong Chuỗi bằng một ký tự khác. Hãy lấy ví dụ trên, giả sử bạn muốn thay thế cả hai lần xuất hiện của "t" trong chuỗi "Favtutor" bằng 'T'. Điều này sẽ dẫn đến chuỗi. "Yêu thích". Do đó, điều này đang thay thế tất cả các lần xuất hiện của một ký tự trong một chuỗi. [Bạn có thể cung cấp luôn số lần xuất hiện, của ký tự đó, bạn muốn thay thế]
  3. Thay thế nhiều ký tự trong một chuỗi bằng ký tự 'giống nhau'. Ví dụ: Bạn có một chuỗi "Xin chào thế giới" và bạn muốn thay thế các ký tự, chẳng hạn như "l" và "o", bằng một ký tự khác, chẳng hạn như '. '. Điều này sẽ dẫn đến. "Anh ta. W. r. đ". Đây là một ví dụ về việc thay thế nhiều ký tự trong một chuỗi bằng một ký tự [giống nhau]
  4. Thay thế nhiều ký tự trong một chuỗi bằng các ký tự khác [khác nhau]. Ví dụ: Hãy lấy câu lệnh "Chuỗi là bất biến". Bạn cần thay thế các ký tự, chẳng hạn ['r', 'm', 'i'], bằng, hãy lấy ['R', '. ', 'M'], theo thứ tự tương ứng, tôi. e. 'r' được thay thế bằng 'R', "M" được thay thế bằng '. ' và 'i' được thay thế bằng 'M'. Do đó, nó sẽ dẫn đến "StRMngs aRe M. dùng được". Đôi khi, nhóm nhiều ký tự này cũng có thể được gọi là 'Chuỗi con'
  5. Xóa ký tự trong chuỗi. Ví dụ: hãy xem xét chuỗi "Fav Tutor". Bây giờ, giả sử bạn cần xóa khoảng trống [' '] giữa 'Yêu thích' và 'Tutor'. Bạn có thể xóa khoảng trống này bằng cách thay thế bằng [""]. Do đó, đầu ra ở đây sẽ là. "Gia sư yêu thích"

Tại đây bạn có thể tìm hiểu cách xóa khoảng trắng khỏi chuỗi trong python

Chắc hẳn bạn đang thắc mắc làm thế nào chúng ta có thể thực hiện các thay đổi [ở đây là thay thế các ký tự] trong chuỗi. Chuỗi là bất biến, phải không?

Chà, Chuỗi là bất biến. Các phương thức [bạn sẽ sớm biết chúng] lấy chuỗi gốc làm đầu vào và trả về chuỗi đã thay đổi [sau khi thay thế các ký tự] làm đầu ra. Đầu ra này được lưu trữ trong một biến chuỗi khác. Do đó, chúng ta cần có một biến khác [đối tượng chuỗi] để lưu kết quả thu được. Do đó, không có thay đổi nào được thực hiện đối với chuỗi gốc, giữ lại thuộc tính bất biến của nó

Làm cách nào để thay thế nhiều ký tự trong một chuỗi bằng Python?

Python cung cấp các mô-đun và phương thức khác nhau để thay thế nhiều ký tự trong một chuỗi. Bây giờ, nhiều ký tự này có thể tách biệt hoặc cùng nhau dưới dạng một 'từ'. Trong khi chúng tôi đang tập trung vào việc thay thế nhiều ký tự, các phương thức này cũng có thể được áp dụng để thay thế một ký tự đơn trong chuỗi trong Python.  

Bắt đầu nào

01] Sử dụng phương thức thay thế[]

Python cung cấp phương thức replace[] để xử lý việc thay thế các ký tự [một hoặc nhiều ký tự] trong một chuỗi. Phương thức thay thế trả về một đối tượng [chuỗi] mới thay thế các trường [ký tự] đã chỉ định bằng các giá trị mới.  

Phương thức replace[] lấy hai tham số làm đầu vào, tham số đầu tiên là mẫu bạn muốn [khớp với chuỗi] được thay thế và tham số thứ hai là mẫu [ký tự] bạn muốn thay thế bằng.  

Cú pháp được sử dụng nhiều nhất cho replace[] là

newObject = originalString. replace['ký tự cần thay thế', 'ký tự cần thay thế' ]

Hãy lấy một ví dụ

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
3

 

đầu ra.  

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
4

 

Lưu ý cách 'b' trong chuỗi gốc 'Bubblegum' được thay thế bằng 'B's. Đây là một ví dụ về việc thay thế nhiều lần xuất hiện của một ký tự trong một chuỗi

Phương thức thay thế[] cũng có một tham số thứ ba [không bắt buộc] nơi bạn có thể đề cập đến số lần thay thế mà bạn muốn thực hiện

Nghĩa là, nếu bất kỳ từ nào, ví dụ: "Bubblegum" có nhiều hơn một lần xuất hiện ký tự, ở đây 'b', thì chúng ta có thể nhập tham số thứ ba là 1, trong trường hợp chúng ta chỉ cần thay thế một 'b' từ

Do đó, cú pháp cơ bản cho phương thức replace[] là

newObject = originalString. replace['ký tự cần thay thế', 'ký tự cần thay thế, số lần thay thế cần thực hiện]

Hãy xem mã cho ví dụ này

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
5

 

Theo mặc định, tất cả các lần xuất hiện của tham số đầu tiên được thay thế trong chuỗi

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
6

 

Lưu ý cách chỉ lần xuất hiện đầu tiên của 'b' được thay thế bằng 'B'. Điều này xảy ra do số lượt thay thế cần thực hiện được đặt thành 1

02] Sử dụng thay thế [] với Danh sách

Trong phương thức trên, chúng ta đã thấy việc sử dụng phương thức replace[] để thay thế các ký tự đơn [một hoặc nhiều lần xuất hiện] bằng một ký tự khác. Phương thức replace[] cũng có thể được sử dụng để thay thế nhiều ký tự [khác nhau] bằng một ký tự khác [giống hoặc khác nhau cho mỗi ký tự]

Sử dụng vòng lặp for. Cách phổ biến nhất để làm việc với danh sách là sử dụng vòng lặp for. Để thay thế nhiều ký tự [giả sử khác nhau] bằng phương thức replace[], bạn có thể liệt kê tất cả các ký tự cần xóa trong danh sách.  

Một ví dụ về cách khai báo danh sách

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
7

 

Bạn có thể thắc mắc, tại sao chúng ta tạo một danh sách hoặc thậm chí sử dụng vòng lặp for khi chúng ta có thể gọi trực tiếp hàm replace[] trên từng ký tự

Khá đơn giản, phải không?

Không, nó không phải. Bạn sẽ tìm thấy lý do sau trong blog. [Vì vậy, hãy chú ý đến nó. ]

Sau khi khởi tạo danh sách, bạn có thể thay thế các ký tự được đề cập bằng ký tự tương tự [i. e. tất cả bằng một] hoặc với nhiều ký tự [i. e. một nhân vật khác nhau cho mỗi]

Trường hợp. Thay thế nhiều ký tự bằng cùng một ký tự

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
8

 

Bạn sẽ nhận thấy cách tôi sử dụng vòng lặp for để phân tích chuỗi cho 'từng ký tự' trong danh sách, để được thay thế bằng một ký tự khác [như "#"].  

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
9

 

Một lần nữa, lưu ý rằng chúng tôi đã thay thế các ký tự cần thay thế [các phần tử trong danh sách char_remov] bằng cùng một ký tự ['#'] ở trên

03] Sử dụng replace[] với Dictionary

Chúng tôi cũng có thể sử dụng các ký tự khác nhau cho mỗi ký tự được thay thế. Để đạt được điều này, bạn phải biết về từ điển

Từ điển trong Python là gì? . Đây là một loại dữ liệu khác do Python cung cấp, cũng được coi là cách Python triển khai cấu trúc dữ liệu mảng kết hợp. Đây là những thay đổi và không cho phép bất kỳ sự trùng lặp nào vì một khóa chỉ có thể có một giá trị

Một từ điển được đại diện bởi. {}

Một ví dụ về từ điển có thể được xem như

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
0

 

Trên đây là một trong những cách khai báo từ điển. Nó cũng cho thấy một trong những cách tiếp cận để có được các giá trị với sự trợ giúp của các khóa

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
1

 

Bây giờ bạn đã biết từ điển là gì và nó được sử dụng như thế nào, hãy quay lại việc thay thế các ký tự trong một chuỗi. Hãy xem xét ví dụ tương tự được sử dụng trước đó nhưng thay vào đó hãy thay thế từng ký tự bằng một ký tự khác. [Hãy thử thay thế chúng bằng dạng chữ hoa. Điều này sẽ dễ dàng nhận thấy. ]

Trường hợp. Thay thế nhiều ký tự bằng các ký tự khác nhau trong một chuỗi trong Python

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
2

 

Việc sử dụng từ điển giúp dễ dàng thay đổi từng ký tự thành một ký tự khác với sự trợ giúp của cặp khóa-giá trị. Mặc dù bạn có thể sử dụng từ điển để thay thế nhiều ký tự bằng một ký tự, nhưng việc sử dụng từ điển không được khuyến khích [vì điều đó sẽ không cần thiết]

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
40

 

Tôi hy vọng bạn đã tìm thấy câu trả lời cho câu hỏi của chúng tôi. 'Tại sao chúng ta cần sử dụng vòng lặp?'

Chà, vì chúng ta cần thay thế nhiều ký tự trong một chuỗi, nên nhu cầu về một vòng lặp thực sự rõ ràng. Chúng ta có thể gọi phương thức replace[] để xóa từng ký tự, nhưng bạn sẽ lặp lại quá trình này trong bao lâu?

Ngoài ra, việc theo dõi một danh sách dài các ký tự được thay thế sẽ khó khăn hơn. Do đó, bằng cách liệt kê [hoặc tạo từ điển] các ký tự được thay thế, chúng ta dễ dàng kết thúc một quá trình lặp lại dài với sự trợ giúp của vòng lặp

Ghi nhớ nó trong tâm trí. Nó khá cơ bản nhưng thường có thể xảy ra trong các cuộc phỏng vấn

Phương thức replace[] là phương thức phổ biến nhất để thay thế bất kỳ ký tự nào trong chuỗi. Bạn có thể sử dụng bất kỳ phiên bản nào ở trên để thay thế nhiều ký tự trong một chuỗi bằng Python. Có những ký hiệu đặc biệt [như '. '] cũng có thể được sử dụng với các biểu thức. Việc sử dụng các ký tự hoặc mẫu đặc biệt này để thay thế có liên quan đến các biểu thức chính quy [hoặc RegEx]

04] Sử dụng mô-đun lại

Python cung cấp 'mô-đun lại' để dễ dàng khi làm việc với Biểu thức chính quy. Bạn phải biết rằng biểu thức chính quy là một chuỗi các ký tự tạo thành một mẫu tìm kiếm. Do đó, các biểu thức chính quy về cơ bản là các chuỗi. Bạn cũng có thể thay thế nhiều ký tự trong một chuỗi với sự trợ giúp của 're module'

Về cơ bản có hai cách để thay thế các ký tự

  1. Sử dụng hàm sub[] với các ký tự meta hoặc chuỗi đặc biệt
  2. Sử dụng hàm sub[] với danh sách và từ điển

Trước khi chuyển sang các phương thức này, hãy cùng tìm hiểu về hàm sub[]

Hàm sub[] trong re module. Mô-đun re trong Python cung cấp hàm sub[] thay thế ký tự khớp [ký tự được cung cấp trong chuỗi] bằng ký tự [mới] đã cho. Điều này trả về một chuỗi có các ký tự mới tại chỗ. Lưu ý rằng bạn cần nhập mô-đun re để sử dụng hàm sub[]

Cú pháp cơ bản của hàm sub[] là

newString = lại. phụ ['characterToBeReplaced', 'characterToReplaceWith', stringName ]

Hãy lấy một ví dụ để hiểu cách thức hoạt động của hàm sub[]

Trường hợp. Thay thế một ký tự đơn bằng một ký tự khác trong chuỗi

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
41

 

't' ở đây cũng được coi là một biểu thức chính quy. Ngoài ra, lưu ý rằng, không giống như phương thức thay thế [], tên chuỗi được truyền dưới dạng tham số đầu vào cho hàm con

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
42

 

Hàm sub[] tìm kiếm chuỗi cho mẫu [ký tự] và sau đó thay thế khớp [mẫu] bằng ký tự mới. Nó trả về một chuỗi mới với những thay đổi được thực hiện. Lưu ý rằng bạn cũng có thể chỉ định số lần thay thế xảy ra bằng cách chuyển tham số "đếm" ở cuối. Do đó, cú pháp cơ bản của sub sẽ là

newString = lại. sub['charactersToBeReplaced', 'characterToReplaceWith' , stringName, count ]

Bây giờ, hãy chuyển sang thay thế nhiều ký tự bằng hàm sub[], với sự trợ giúp của các ký tự đặc biệt

Hãy nhớ rằng ký tự meta là ký tự có ý nghĩa đặc biệt [ví dụ - '. ' cho 'hoặc'] và các chuỗi đặc biệt như '\s' cho khoảng trắng. Các ký tự meta hoặc chuỗi đặc biệt này có thể được sử dụng để thay thế nhiều ký tự trong một chuỗi

Hãy lưu ý ví dụ dưới đây

Trường hợp. Thay thế nhiều ký tự trong một chuỗi bằng một ký tự duy nhất, sử dụng chuỗi đặc biệt và ký tự meta

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
43

 

Lưu ý rằng tôi đã sử dụng một chuỗi đặc biệt ['\s'] cũng như một ký tự meta ['. '] trong ví dụ trên

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
44

 

Đây là một cách khác để thay thế nhiều ký tự bằng hàm sub[]. Nhưng cách này có thể được sử dụng cho đến khi số lượng ký tự được thay thế chỉ giới hạn ở một số ít. Giống như trước đây, chúng ta sẽ cần sử dụng một vòng lặp để làm việc với việc thay thế nhiều ký tự [nhiều hơn ít ký tự]. Hàm sub[] cũng có thể được sử dụng với danh sách cũng như từ điển.  

Hãy lấy một ví dụ về việc sử dụng hàm sub[] với từ điển

Trường hợp. Thay thế nhiều ký tự trong một chuỗi bằng các ký tự khác nhau bằng từ điển

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
45

 

Chuỗi ký tự [được tham chiếu với tên biến 'char' và các giá trị trong từ điển] là các biểu thức chính quy.  

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
40

 

Ngoài hàm sub[], mô-đun re còn cung cấp hàm subn[], tương tự như hàm sub[]. Điểm khác biệt duy nhất là hàm subn[] cũng cung cấp số lần thay thế mà nó thực hiện trong chuỗi. Ngoài ra, hàm sub[] cũng có thể được sử dụng với hàm "lambda"

Bạn nên thử sử dụng các chức năng trên. Họ có thể đưa bạn đến đầu ra mong muốn

05] Sử dụng translate[] và maketrans[]

Các phương pháp được thảo luận cho đến nay liên quan đến các biểu thức chính quy và có thể được sử dụng với các danh sách và từ điển. Tuy nhiên, Python cung cấp một phương thức khác sử dụng từ điển để ánh xạ các giá trị cũ thành các giá trị mới và do đó thay thế nhiều ký tự trong một chuỗi

Phương thức maketrans[] tạo một bảng ánh xạ [từ điển] giữa ký tự gốc và ký tự thay thế. Xem ví dụ bên dưới

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
47

 

Phương thức maketrans[] tạo một bảng [từ điển] ánh xạ các giá trị cũ với các giá trị mới

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
48

 

Lưu ý rằng từ điển [được trả về bởi maketrans[]] chứa các giá trị ASCII của các ký tự, [cả hai, được thay thế và thay thế bằng]

Hàm translate[] chấp nhận bảng được tạo bởi maketrans[] và tạo chuỗi đã dịch. Hãy xem ví dụ dưới đây để thay thế nhiều ký tự trong một chuỗi trong Python

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
49

 

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
50

 

Đây là một ví dụ khác về việc thay thế nhiều ký tự trong một chuỗi bằng từ điển. Bạn có thể sử dụng phương pháp trên cho bất kỳ trường hợp nào được đề cập ở trên

So sánh giữa phương thức translate[] và replace[]

Phương thức translate[] và replace[], cả hai đều là các hàm dựng sẵn trong Python, để thay thế nhiều ký tự trong một chuỗi. Bạn có thể sử dụng một trong hai để thực hiện nhiệm vụ. Dưới đây là so sánh của cả hai phương pháp

1. Phương thức translate[] chỉ thay thế các ký tự đơn lẻ bằng các chuỗi tùy ý trong khi phương thức replace[] cho phép thay thế các chuỗi có độ dài tùy ý. Ví dụ

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
51

 

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
52

 

Lưu ý lỗi gặp phải khi gọi phương thức maketrans[]. Lỗi này xảy ra do sự khác biệt về độ dài của các ký tự [hoặc số lượng ký tự] được thay thế và các ký tự được thay thế bằng. Bây giờ, hãy xem phương thức replace[] hoạt động như thế nào với trường hợp

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
53

 

Phương thức thay thế [] coi tham số đầu vào 'mit' là một chuỗi thay vì coi nó là một chuỗi các ký tự riêng lẻ. Ngoài ra, độ dài tùy ý của các tham số không cần giống nhau

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
54

 

Do đó, bạn sẽ nhận thấy rằng thay vì thay thế 'm', 'i', 't', phương thức replace[] chỉ thay thế tổ hợp 'mit' bằng 'M'

2. Phương thức translate[] có thể thực hiện thay thế "nhiều ký tự" trong một lần gọi trong khi phương thức replace[] chỉ có thể thay thế một "chuỗi đơn" cùng một lúc

3. Phương thức translate[] có thể được sử dụng khi bạn không chắc chắn liệu các ký tự mới [ký tự được thay thế] có bị thay thế hay không

Khó khăn?

Chẳng hạn, hãy xem xét một chuỗi, nói 'abcd'. Bây giờ, bạn cần thay thế các ký tự 'a' bằng 'b', 'b' bằng 'c' và 'c' bằng 'd'

Tóm lại, đầu vào = 'abcd'       và          đầu ra dự kiến ​​= 'bcdd'

Hãy so sánh cả hai phương pháp trên đầu vào ở trên

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
55

 

Lưu ý sự khác biệt giữa các đầu ra được trả về bởi cả hai phương thức

đầu ra

Original String : Ge;ek*s:fo!r;Ge*e*k:s!
Resultant list is : GeeksforGeeks
56

 

Cả hai phương pháp tạo ra kết quả đầu ra khác nhau. Chắc hẳn bạn đang thắc mắc "làm thế nào" đúng không?

Điều này xảy ra do phương thức thay thế [] đang được thực hiện trong một vòng lặp, cái này nối tiếp cái kia. Hãy liệt kê ra những thay đổi để hiểu rõ hơn

a. Đầu vào = 'abcd'

b. Thay 'a' bằng 'b' => string = 'bbcd'

c. Thay 'b' bằng 'c' => string = 'cccd'

d. Thay 'c' bằng 'd' => 'dddd'

Do đó, đầu ra = 'dddd'

Do đó, trong trường hợp này, phương thức translate[] đáp ứng sẽ tạo ra kết quả như mong đợi

Do đó, khi so sánh cả hai phương thức, bạn sẽ nhận thấy rằng bạn nên sử dụng phương thức translate[] khi thay thế nhiều ký tự vì nó tăng chức năng. Mặc dù phương thức thay thế [] có lợi ích riêng trong việc tối ưu hóa thời gian

Ngoài ra, hãy kiểm tra cách thay thế một ký tự trong chuỗi trong python

Sự kết luận

Trong bài viết này, chúng ta đã xem xét cách sử dụng các hàm có sẵn của Python để thay thế nhiều ký tự trong một chuỗi. Nhiệm vụ này cũng có thể được thực hiện bằng cách sử dụng các biến thể khác nhau của các vòng lặp trên chuỗi. Chúng tôi cũng đã so sánh các phương pháp với các trường hợp sử dụng khác nhau. Tôi hy vọng bài viết này giúp bạn tìm thấy một phương pháp thích hợp cho mã của bạn. Mã hóa vui vẻ

Chủ Đề