String modification đề cập đến quá trình thay đổi các ký tự của một chuỗi. Nếu chúng ta nói về việc sửa đổi một chuỗi trong Python, điều chúng ta đang nói đến là tạo ra một chuỗi mới là biến thể của chuỗi gốc.
Trong Python , một string (đối tượng của lớp str ) là kiểu không thể thay đổi. Ở đây, không thể thay đổi đề cập đến một đối tượng không thể được sửa đổi tại chỗ sau khi nó được tạo trong bộ nhớ. Không giống như một list , chúng ta không thể ghi đè bất kỳ ký tự nào trong chuỗi, cũng như không thể chèn hoặc thêm ký tự vào đó trực tiếp. Nếu chúng ta cần sửa đổi một chuỗi, chúng ta sẽ sử dụng một số phương thức chuỗi nhất định trả về một đối tượng chuỗi mới. Tuy nhiên, chuỗi gốc vẫn không thay đổi.
Chúng ta có thể sử dụng bất kỳ mẹo nào sau đây như một giải pháp tạm thời để chỉnh sửa một chuỗi.
Cả chuỗi và danh sách trong Python đều là kiểu chuỗi, chúng có thể chuyển đổi qua lại với nhau. Do đó, chúng ta có thể chuyển đổi một chuỗi thành danh sách, chỉnh sửa danh sách bằng các phương thức như insert() , append() hoặc remove() và sau đó chuyển đổi danh sách trở lại thành chuỗi để có được phiên bản đã được chỉnh sửa.
Giả sử, chúng ta có một biến chuỗi s1 với giá trị là WORD và chúng ta cần chuyển nó thành một danh sách. Để thực hiện thao tác này, chúng ta có thể sử dụng hàm tích hợp list() và chèn một ký tự L vào chỉ số 3. Sau đó, chúng ta có thể nối tất cả các ký tự lại với nhau bằng phương thức join() của lớp str.
Ví dụ dưới đây minh họa cách chuyển đổi một chuỗi thành một danh sách.
s1="WORD" print ("original string:", s1) l1=list(s1) l1.insert(3,"L") print (l1) s1=''.join(l1) print ("Modified string:", s1)
Nó sẽ tạo ra output −
original string: WORD ['W', 'O', 'R', 'L', 'D'] Modified string: WORLD
Để sửa đổi một chuỗi, hãy tạo một array object bằng cách sử dụng thư viện chuẩn của Python có tên là mô-đun array. Nó sẽ tạo ra một mảng kiểu Unicode từ một chuỗi variable .
Trong ví dụ dưới đây, chúng tôi đang sử dụng mô-đun array để sửa đổi chuỗi được chỉ định.
import array as ar # initializing a string s1="WORD" print ("original string:", s1) # converting it to an array sar=ar.array('u', s1) # inserting an element sar.insert(3,"L") # getting back the modified string s1=sar.tounicode() print ("Modified string:", s1)
Nó sẽ tạo ra output −
original string: WORD Modified string: WORLD
Module io của Python định nghĩa các lớp để xử lý các luồng. Lớp StringIO đại diện cho một luồng văn bản sử dụng một bộ đệm văn bản trong bộ nhớ. Một đối tượng StringIO lấy từ một chuỗi hoạt động giống như một đối tượng File. Do đó, chúng ta có thể thực hiện các thao tác đọc/ghi trên nó. Phương thức getvalue() của lớp StringIO trả về một chuỗi.
Hãy sử dụng nguyên tắc đã thảo luận ở trên trong chương trình sau để sửa đổi một chuỗi.
import io s1="WORD" print ("original string:", s1) sio=io.StringIO(s1) sio.seek(3) sio.write("LD") s1=sio.getvalue() print ("Modified string:", s1)
Nó sẽ tạo ra output −
original string: WORD Modified string: WORLD