Xóa ký tự trong chuỗi python (strip ,lstrip, rstrip, replace ) | Laptrinhcanban.com

HOME › >>

Xóa ký tự trong chuỗi python (strip ,lstrip, rstrip, replace )

Hướng dẫn xóa ký tự trong chuỗi python. Bạn sẽ học được tất cả các cách xóa ký tự trong chuỗi python bằng các phương thức có sẵn như strip ,lstrip, rstrip, replace trong bài viết này.

Chúng ta có 6 phương pháp để xóa ký tự trong chuỗi python như sau:

  • Phương thức strip() : Xóa ký tự chỉ định ở hai đầu chuỗi
  • Phương thức lstrip(): Xóa ký tự chỉ định ở đầu chuỗi python
  • Phương thức rstrip(): Xóa ký tự chỉ định ở cuối chuỗi Python
  • Phương thức replace() Xóa toàn bộ các ký tự chỉ định trong chuỗi python
  • slicing chuỗi : Xóa ký tự đầu tiên và xóa ký tự cuối cùng trong chuỗi Python
  • Phương thức replace() : Xóa khoảng trắng trong chuỗi Python

Xóa ký tự chỉ định ở hai đầu chuỗi

Phương thức strip() trong python

Chúng ta sử dụng phương thức strip() trong python để xóa ký tự đầu tiên được tìm thấy từ hai đầu chuỗi và tạo ra một chuỗi string mới.

Cú pháp sử dụng phương thức strip() như sau:

new_str = org_str.strip ( chars )

Trong đó:

  • org_str là chuỗi ban đầu.
  • chars là tập hợp các ký tự muốn xóa ở cả hai đầu chuỗi org_str. Ví dụ như ta muốn xóa các ký tự a , x, 1 khỏi một chuỗi thì ta sẽ chỉ định charsax1 hoặc x1a hoặc 1ax đều được.
  • new_str là chuỗi kết quả sau khi đã xóa ký tự ở hai đầu chuỗi org_str.

Phương thức strip() sẽ tìm kiếm lần lượt từng ký tự trong đối số chars và xóa đi các ký tự giống nó ở cả hai đầu chuỗi org_str, và lưu kết quả tại một chuỗi mới.

Xóa ký tự chỉ định ở hai đầu chuỗi bằng strip()

Ví dụ, chúng ta xóa các ký tự ‘a’, ‘s’, ‘1’ ở hai đầu chuỗi ‘address1’ như sau:

org_str  =  "address1"
new_str1 = org_str.strip('as1')
new_str2 = org_str.strip('1sa')

print(new_str1)
print(new_str2)

#>> ddre
#>> ddre

Chúng ta cũng có thể xóa đi các dấu như dấu ., dấu ,, dấu ? từ hai đầu chuỗi python như sau:

org_str = "..Hello,.?."
print(org_str)
print(org_str.strip(".?,"))

#>> ..Hello,.?.
#>> Hello

Lưu ý là phương thức strip() KHÔNG làm thay đổi chuỗi ban đầu, mà chỉ xóa ký tự trong chuỗi ban đầu và lưu kết quả phép xóa trong một chuỗi mới mà thôi.

org_str  =  "address1"
print(org_str)

new_str1 = org_str.strip('as1')
print(new_str1)

print(org_str)

#>> address1
#>> ddre
#>> address1

Lại nữa, phương thức strip() sẽ xóa lần lượt từng ký tự chỉ định trong đối số chars ở cả hai đầu và dừng lại tại vị trí xuất hiện ký tự đầu tiên khác với tất cả các ký tự chỉ định trong chars.

Do đó, phương thức strip() sẽ không thể xóa đi một ký tự nếu nó nằm giữa các ký tự không được chỉ định trong đối số chars. Ví dụ, các ký tự e ở hai đầu chuỗi sau sẽ bị xóa đi, trong khi ký tự e nằm giữa ký tự cb lại không thể bị xóa.

str1 =  "eabcebe"
print(str1.strip("e"))
#>> abceb

Xóa khoảng trắng ở hai đầu chuỗi Python

Khi sử dụng phương thức strip() mà không chỉ định đối số chars, strip() sẽ tiến hành xóa mặc định các khoảng trắng ' ', tab \t hay ký tự xuống dòng \n nếu có ở cả hai đầu chuỗi ban đầu.

Lợi dụng tính chất này, chúng ta có thể sử dụng phương thức strip() để xóa khoảng trắng trong chuỗi Python ở hai đầu chuỗi, bằng cách lược bỏ đi đối số chars khi sử dụng.

Ví dụ cụ thể, các khoảng trắng ở đầu và cuối chuỗi sau sẽ bị xóa đi:

str1 = "   Hello   "
print("["+ str1 + "]")
print("["+ str1.strip() + "]")
#>> [ Hello ]
#>> [Hello]

str2 = " Adam and Eva "
print("["+ str2 + "]")
print("["+ str2.strip() + "]")
#>> [ Adam and Eva ]
#>> [Adam and Eva]

Tuy nhiên cách này chỉ có thể xóa khoảng trắng ở hai đầu chuỗi mà thôi. Nếu muốn xóa toàn bộ khoảng trắng trong chuỗi Python, hãy xem ở phần sau.

Xóa ký tự chỉ định ở đầu chuỗi python

Chúng ta sử dụng phương thức lstrip để xóa ký tự chỉ định ở đầu chuỗi python với cú pháp sau đây:

new_str = org_str.lstrip ( chars )

Ở đây l là viết tắt của left trong tiếng anh, có nghĩa là ở đầu bên trái chuỗi chỉ định.

Phương thức lstrip() sẽ tìm kiếm lần lượt từng ký tự trong đối số chars và xóa đi các ký tự giống nó ở đầu bên trái chuỗi org_str, và lưu kết quả tại một chuỗi mới.

Cách sử dụng phương thức lstrip() về căn bản giống với strip() mà Kiyoshi đã hướng dẫn ở trên. Và tương tự strip(), phương thức lstrip() cũng KHÔNG làm thay đổi chuỗi ban đầu, mà chỉ xóa đi ký tự chỉ định trong chuỗi ban đầu và lưu kết quả phép xóa trong một chuỗi mới mà thôi.

Sau đây, hãy cùng xem một số ví dụ sử dụng lstrip() để xóa ký tự chỉ định ở đầu chuỗi python như sau:

Xóa các dấu chấm đầu chuỗi python:

org_str = "...Hello..."
new_str = org_str.lstrip(".")
print(org_str)
print(new_str)
#>> ...Hello...
#>> Hello...

Xóa các ký tự chỉ định ở đầu chuỗi python

org_str = "www.example.com"
print(org_str.lstrip("w.cmo"))
#>> example.com

Xóa khoảng trắng ở đầu chuỗi Python:

org_str = "   My   First   Love   "
new_str = org_str.lstrip()
print('['+ org_str + ']')
print('['+ new_str + ']')

#>> [ My First Love ]
#>>[My First Love ]

Xóa ký tự chỉ định ở cuối chuỗi Python

Chúng ta sử dụng phương thức rstrip() để xóa ký tự chỉ định ở cuối chuỗi Python với cú pháp sau đây:

new_str = org_str.rstrip ( chars )

Ở đây r là viết tắt của right trong tiếng anh, có nghĩa là ở đầu bên phải chuỗi chỉ định.

Phương thức rstrip() sẽ tìm kiếm lần lượt từng ký tự trong đối số chars và xóa đi các ký tự giống nó ở đầu bên phải chuỗi org_str, và lưu kết quả tại một chuỗi mới.

Cách sử dụng phương thức rstrip() về căn bản giống với strip() mà Kiyoshi đã hướng dẫn ở trên. Và tương tự strip(), phương thức rstrip() cũng KHÔNG làm thay đổi chuỗi ban đầu, mà chỉ xóa đi ký tự chỉ định ở cuối chuỗi ban đầu và lưu kết quả phép xóa trong một chuỗi mới mà thôi.

Sau đây, hãy cùng xem một số ví dụ sử dụng rstrip() để xóa ký tự chỉ định ở cuối chuỗi Python như sau:

Xóa các dấu chấm cuối chuỗi python:

org_str = "...Hello..."
new_str = org_str.rstrip(".")
print(org_str)
print(new_str)
#>> ...Hello...
#>> ...Hello

Xóa các ký tự chỉ định ở cuối chuỗi python

org_str = "www.example.com"
print(org_str.rstrip("w.cmo"))
#>> www.example

Xóa khoảng trắng ở cuối chuỗi Python:

org_str = "   My   First   Love   "
new_str = org_str.rstrip()
print('['+ org_str + ']')
print('['+ new_str + ']')

#>> [ My First Love ]
#>> [ My First Love]

Xóa toàn bộ các ký tự chỉ định

Sử dụng phương thức replace()

Phương pháp str.replace() là một cách tiện lợi để thay thế một ký tự hoặc chuỗi ký tự bằng một chuỗi khác trong chuỗi gốc. Bạn có thể sử dụng str.replace() để xóa ký tự bằng cách thay thế nó bằng một chuỗi rỗng.

Ví dụ, nếu bạn muốn xóa tất cả dấu phẩy trong chuỗi s, bạn có thể làm như sau:

s = "1,000,000"
new_s = s.replace(",", "")
print(new_s) # Kết quả: "1000000"

Trong ví dụ này, s.replace(",", "") sẽ thay thế tất cả dấu phẩy trong chuỗi s bằng một chuỗi rỗng, dẫn đến việc xóa tất cả các dấu phẩy khỏi chuỗi.

Sử dụng biểu thức chính quy

Nếu bạn cần xóa các ký tự dựa trên một quy tắc phức tạp hơn, bạn có thể sử dụng biểu thức chính quy (regular expressions) trong Python. Thư viện re cung cấp các công cụ mạnh mẽ để thực hiện các thao tác phức tạp trên chuỗi.

Ví dụ, nếu bạn muốn xóa tất cả các ký tự không phải là số từ chuỗi s, bạn có thể sử dụng biểu thức chính quy như sau:

import re

s = "123abc456def789"
new_s = re.sub(r'[^0-9]', '', s)
print(new_s) # Kết quả: "123456789"

Trong ví dụ này, biểu thức chính quy r'[^0-9]' sẽ thay thế tất cả các ký tự không phải là số bằng chuỗi rỗng, dẫn đến việc chỉ giữ lại các chữ số trong chuỗi.

Sử dụng list comprehension

List comprehension là một công cụ mạnh mẽ trong Python để xử lý danh sách hoặc chuỗi. Bạn có thể sử dụng list comprehension để tạo một chuỗi mới bằng cách lọc ra các ký tự bạn muốn giữ lại.

Ví dụ, nếu bạn muốn xóa tất cả các ký tự thường (chữ cái viết thường) từ chuỗi s, bạn có thể làm như sau:

s = "Hello World"
new_s = ''.join([char for char in s if not char.islower()])
print(new_s) # Kết quả: "HW"

Trong ví dụ này, list comprehension [char for char in s if not char.islower()] tạo ra một danh sách các ký tự không phải là chữ cái viết thường, sau đó chúng ta sử dụng join() để chuyển danh sách này thành một chuỗi mới.

Xóa ký tự trong chuỗi bằng slicing

Xóa ký tự đầu chuỗi Python

Bằng cách ứng dụng chức năng slicing chuỗi, chúng ta có thể xóa ký tự đầu trong chuỗi Python.

Ý tưởng ở đây là chúng ta sẽ tạo ra một chuỗi string mới chứa tất cả ký tự trong chuỗi cũ ngoại trừ ký tự đầu tiên của chuỗi cũ, bằng cách cắt chuỗi cũ từ ký tự thứ 2 cho tới cuối chuỗi.

Cách làm đơn giản như sau:

mystr = "aiueo"
first_delete_str = mystr[1:]
print(first_delete_str)
#>> iueo

Lưu ý là cách làm này sẽ tạo ra một chuỗi mới chứa kết quả phép xóa, chứ không làm thay đổi chuỗi ban đầu.

mystr = "12345"
print(mystr)

first_delete_str = mystr[1:]
print(first_delete_str)

print(mystr)

#> 12345
#> 2345
#> 12345

Xóa ký tự cuối chuỗi Python

Tương tự, bằng cách ứng dụng chức năng slicing chuỗi, chúng ta có thể xóa ký tự cuối trong chuỗi Python.

Ý tưởng ở đây là chúng ta sẽ tạo ra một chuỗi string mới chứa tất cả ký tự trong chuỗi cũ ngoại trừ ký tự cuối cùng của chuỗi cũ, bằng cách cắt chuỗi cũ từ đầu chuỗi cho đến trước ký tự cuối cùng trong chuỗi.

Cách làm đơn giản như sau:

mystr = "aiueo"
first_delete_str = mystr[:-1]
print(first_delete_str)
#>> aiue

Lưu ý là cách làm này sẽ tạo ra một chuỗi mới chứa kết quả phép xóa, chứ không làm thay đổi chuỗi ban đầu.

mystr = "12345"
print(mystr)

last_delete_str = mystr[:-1]
print(last_delete_str)

print(mystr)

#>> 12345
#>> 1234
#>> 12345

Xóa n ký tự từ đầu hoặc cuối chuỗi Python

Bằng cách ứng dụng chức năng slicing chuỗi, chúng ta có thể xóa n ký tự từ đầu hoặc cuối chuỗi Python.

Ví dụ chúng ta xóa 2 ký tự từ đầu chuỗi python như sau:

mystr = "12345"
new_str = mystr[2:]
print(new_str)
#>> 345

Tương tự chúng ta có thể xóa 2 ký tự từ cuối chuỗi python như sau:

mystr = "12345"
new_str = mystr[:-2]
print(new_str)
#>> 123

Xóa khoảng trắng trong chuỗi Python

Dùng phương thức replace()

Để xóa khoảng trắng trong chuỗi Python, chúng ta có thể sử dụng phương thức replace() hoặc là phương thức strip() trong python.

Giống như Kiyoshi đã hướng dẫn ở phần strip() ở trên, chúng ta có thể xóa khoảng trắng ở hai đầu chuỗi Python với strip() như sau:

s = '   Adam   and   Eva   '
t = s. strip()
print(t)

#>> Adam and Eva

Trong trường hợp bạn muốn xóa toàn bộ khoảng trắng trong chuỗi Python, chúng ta sử dụng chức năng thay thế ký tự trong chuỗi của phương thức replace() và thay thế toàn bộ khoảng trắng trong chuỗi bằng một chuỗi rỗng như sau:

s = '   Adam   and   Eva   '
t = s. replace(' ','')
print(t)

#>> AdamandEva

Dùng vòng lặp

Nếu bạn muốn xóa tất cả các ký tự có giá trị cụ thể khỏi chuỗi, bạn có thể sử dụng một vòng lặp để duyệt qua từng ký tự trong chuỗi và bỏ qua ký tự bạn muốn xóa.

Ví dụ, nếu bạn muốn xóa tất cả khoảng trắng trong chuỗi s, bạn có thể sử dụng vòng lặp như sau:

s = "Hello,      World"
new_s = ""
for char in s:
if char != " ":
new_s += char
print(new_s) # Kết quả: "Hello,World"

Trong ví dụ này, chúng ta tạo một chuỗi mới new_s và duyệt qua từng ký tự trong chuỗi ban đầu s. Nếu ký tự không phải là khoảng trắng, chúng ta thêm nó vào chuỗi mới.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách xóa ký tự trong chuỗi python rồi. Xóa ký tự trong chuỗi là một nhiệm vụ quan trọng trong lập trình Python. Trong bài viết này, chúng ta đã tìm hiểu về nhiều cách khác nhau để thực hiện điều này, từ cách sử dụng slicing đến việc sử dụng các hàm thư viện như str.replace() và biểu thức chính quy. Sự lựa chọn phụ thuộc vào bài toán cụ thể của bạn và mức độ phức tạp của yêu cầu. Hi vọng rằng thông qua bài viết này, bạn đã nắm vững các kỹ thuật để xóa ký tự trong chuỗi và có thêm sự hiểu biết về việc làm việc với chuỗi trong Python.

URL Link

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/thao-tac-voi-chuoi-string-trong-python/xoa-ky-tu-trong-chuoi-python/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.