Bài 2. Sửa Đổi Chuỗi trong Python
Trong Python, một chuỗi (đối tượng của lớp str) thuộc loại không thay đổi. Một đối tượng không thay đổi là đối tượng không thể được sửa đổi tại chỗ, sau khi được tạo trong bộ nhớ. Do đó, khác với một danh sách, bất kỳ ký tự nào trong chuỗi cũng không thể được ghi đè, cũng không thể chèn hoặc thêm các ký tự vào nó trừ khi chúng ta 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, chúng ta có thể sử dụng một trong các kỹ thuật sau đây như một phương pháp vượt qua để sửa đổi một chuỗi.
Chuyển đổi một Chuỗi thành Một Danh Sách
Vì cả chuỗi và danh sách đều là các chuỗi, chúng có thể được chuyển đổi lẫn nhau. Do đó, nếu chúng ta chuyển đổi một đối tượng chuỗi thành một danh sách, sửa đổi danh sách bằng cách sử dụng các phương thức insert(), append() hoặc remove(), và sau đó chuyển đổi danh sách trở lại thành một chuỗi, chúng ta sẽ nhận được phiên bản đã được sửa đổi.
Ví dụ
s1 = "WORD"
print("Chuỗi gốc:", s1)
l1 = list(s1)
l1.insert(3, "L")
print(l1)
s1 = ''.join(l1)
print("Chuỗi đã sửa đổi:", s1)
Kết quả sẽ là:
Chuỗi gốc: WORD
['W', 'O', 'R', 'L', 'D']
Chuỗi đã sửa đổi: WORLD
Sử Dụng Mô-đun Array
Để sửa đổi một chuỗi, ta có thể xây dựng một đối tượng mảng. Thư viện chuẩn của Python bao gồm mô-đun array. Chúng ta có thể có một mảng kiểu Unicode từ một biến chuỗi.
Ví dụ
import array as ar
s1 = "WORD"
sar = ar.array('u', s1)
sar.insert(3, "L")
s1 = sar.tounicode()
print("Chuỗi đã sửa đổi:", s1)
Kết quả sẽ là:
Chuỗi đã sửa đổi: WORLD
Sử Dụng Lớp StringIO
Mô-đun io của Python định nghĩa các lớp để xử lý 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 được 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 này trong chương trình sau để sửa đổi một chuỗi.
Ví dụ
import io
s1 = "WORD"
print("Chuỗi gốc:", s1)
sio = io.StringIO(s1)
sio.seek(3)
sio.write("LD")
s1 = sio.getvalue()
print("Chuỗi đã sửa đổi:", s1)
Kết quả sẽ là:
Chuỗi gốc: WORD
Chuỗi đã sửa đổi: WORLD
Như vậy, ta đã tìm hiểu cách sửa đổi chuỗi trong Python bằng các kỹ thuật khác nhau.
Nếu bạn có bất kỳ câu hỏi hoặc cần thêm thông tin, hãy liên hệ với chúng tôi, chúng tôi luôn sẵn sàng giải đáp mọi thắc mắc của bạn! Chúc bạn thành công trong quá trình chinh phục Python!