Hướng dẫn how to remove few characters from string in python - cách xóa một vài ký tự khỏi chuỗi trong python

Chuỗi trong Python là bất biến (không thể thay đổi). Bởi vì điều này, hiệu ứng của

import re
line = re.sub('[!@#$]', '', line)
4 chỉ là để tạo ra một chuỗi mới, thay vì thay đổi cái cũ. Bạn cần phải sửa đổi (gán) nó cho
import re
line = re.sub('[!@#$]', '', line)
5 để có biến đó lấy giá trị mới, với các ký tự đó bị xóa.

Ngoài ra, cách bạn đang làm, nó sẽ là loại chậm, tương đối. Nó cũng có khả năng là một chút khó hiểu đối với các pythonators có kinh nghiệm, những người sẽ nhìn thấy một cấu trúc được lồng gấp đôi và suy nghĩ trong một khoảnh khắc mà một cái gì đó phức tạp hơn đang diễn ra.

Bắt đầu trong Python 2.6 và các phiên bản Python 2.x mới hơn *, thay vào đó bạn có thể sử dụng

import re
line = re.sub('[!@#$]', '', line)
6, (xem Python 3 Trả lời bên dưới):Python 3 answer below):

line = line.translate(None, '!@#$')

hoặc thay thế biểu thức thông thường bằng

import re
line = re.sub('[!@#$]', '', line)
7

import re
line = re.sub('[!@#$]', '', line)

Các nhân vật được đặt trong ngoặc tạo thành một lớp nhân vật. Bất kỳ ký tự nào trong

import re
line = re.sub('[!@#$]', '', line)
5 trong lớp đó đều được thay thế bằng tham số thứ hai thành
import re
line = re.sub('[!@#$]', '', line)
9: một chuỗi trống.

Python 3 Trả lời

Trong Python 3, chuỗi là Unicode. Bạn sẽ phải dịch một chút khác nhau. Kevpie đề cập đến điều này trong một bình luận về một trong những câu trả lời và nó được ghi nhận trong tài liệu cho

import re
line = re.sub('[!@#$]', '', line)
6.

Khi gọi phương thức

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
1 của chuỗi Unicode, bạn không thể vượt qua tham số thứ hai mà chúng tôi đã sử dụng ở trên. Bạn cũng không thể vượt qua
translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
2 là tham số đầu tiên. Thay vào đó, bạn vượt qua một bảng dịch (thường là từ điển) là tham số duy nhất. Bảng này ánh xạ các giá trị thứ tự của các ký tự (nghĩa là kết quả của việc gọi
translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
3 trên chúng) đến các giá trị thứ tự của các ký tự sẽ thay thế chúng, hoặc tinh thần cho chúng tôi.

Vì vậy, để thực hiện các điệu nhảy trên với một chuỗi unicode, bạn sẽ gọi một cái gì đó như

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)

Ở đây

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
5 và
translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
6 được sử dụng để tạo ra một từ điển có chứa

{ord('!'): None, ord('@'): None, ...}

Thậm chí đơn giản hơn, như một câu trả lời khác đặt ra, hãy tạo bảng dịch tại chỗ:

unicode_line = unicode_line.translate({ord(c): None for c in '!@#$'})

Hoặc, như được đưa ra bởi Joseph Lee, tạo ra cùng một bảng dịch với

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
7:

unicode_line = unicode_line.translate(str.maketrans('', '', '!@#$'))

* Để tương thích với Pythons trước đó, bạn có thể tạo bảng dịch "null" để vượt qua thay cho

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
2:

import string
line = line.translate(string.maketrans('', ''), '!@#$')

Ở đây

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
9 được sử dụng để tạo bảng dịch, chỉ là một chuỗi chứa các ký tự có giá trị thứ tự 0 đến 255.

Đôi khi chúng tôi muốn loại bỏ tất cả các lần xuất hiện của một ký tự khỏi một chuỗi. Có hai cách phổ biến để đạt được điều này.

Python loại bỏ ký tự khỏi chuỗi

  1. Sử dụng hàm thay thế chuỗi ()
  2. Sử dụng hàm dịch ()

Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng thay thế ()

Chúng ta có thể sử dụng hàm thay thế chuỗi () để thay thế một ký tự bằng một ký tự mới. Nếu chúng tôi cung cấp một chuỗi trống làm đối số thứ hai, thì ký tự sẽ bị xóa khỏi chuỗi. Lưu ý rằng chuỗi là bất biến trong Python, vì vậy hàm này sẽ trả về một chuỗi mới và chuỗi ban đầu sẽ không thay đổi.

s = 'abc12321cba'

print(s.replace('a', ''))

Đầu ra:

{ord('!'): None, ord('@'): None, ...}
0

Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng dịch ()

Chức năng Python Chuỗi dịch () Thay thế từng ký tự trong chuỗi bằng bảng dịch đã cho. Chúng tôi phải chỉ định điểm mã Unicode cho ký tự và ‘không có cách thay thế để xóa nó khỏi chuỗi kết quả. Chúng ta có thể sử dụng hàm ord () để có được điểm mã unicode của một ký tự.

s = 'abc12321cba'

print(s.translate({ord('a'): None}))

Đầu ra:

{ord('!'): None, ord('@'): None, ...}
0 Nếu bạn muốn thay thế nhiều ký tự, điều đó có thể được thực hiện dễ dàng bằng cách sử dụng trình lặp. Hãy cùng xem cách loại bỏ các ký tự ‘A,’ B, và ‘C, khỏi một chuỗi.

s = 'abc12321cba'

print(s.translate({ord(i): None for i in 'abc'}))

Đầu ra:

{ord('!'): None, ord('@'): None, ...}
2

Loại bỏ khoảng trắng khỏi chuỗi

import re
line = re.sub('[!@#$]', '', line)
0

Python loại bỏ dòng mới khỏi chuỗi

import re
line = re.sub('[!@#$]', '', line)
1

Xóa con khỏi chuỗi

Chuỗi thay thế () đối số hàm là chuỗi. Hãy để xem cách loại bỏ một từ khỏi một chuỗi.

import re
line = re.sub('[!@#$]', '', line)
2

Đầu ra:

{ord('!'): None, ord('@'): None, ...}
3

Xóa số lần được chỉ định

Chúng tôi cũng có thể vượt qua tham số thứ ba trong hàm thay thế () để chỉ định số lần thay thế nên được thực hiện.

import re
line = re.sub('[!@#$]', '', line)
3

Đầu ra:

{ord('!'): None, ord('@'): None, ...}
4

Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.

Làm cách nào để loại bỏ nhiều ký tự khỏi chuỗi trong Python?

Để xóa nhiều ký tự khỏi chuỗi, chúng ta có thể dễ dàng sử dụng hàm str.replace và truyền nhiều ký tự tham số. Lớp chuỗi (STR) cung cấp một phương thức để thay thế (old_str, new_str) để thay thế các chuỗi con trong một chuỗi. Nó thay thế tất cả các yếu tố của chuỗi phụ cũ bằng chuỗi phụ mới.use the function str. replace and pass a parameter multiple characters. The String class (Str) provides a method to replace(old_str, new_str) to replace the sub-strings in a string. It replaces all the elements of the old sub-string with the new sub-string.

Làm cách nào để xóa một số chữ cái nhất định khỏi một chuỗi trong Python?

Sử dụng 'str.Thay thế (), chúng ta có thể thay thế một ký tự cụ thể.Nếu chúng ta muốn xóa ký tự cụ thể đó, hãy thay thế ký tự đó bằng một chuỗi trống.STR.Phương thức thay thế () sẽ thay thế tất cả các lần xuất hiện của ký tự cụ thể được đề cập.replace that character with an empty string. The str. replace() method will replace all occurrences of the specific character mentioned.

Làm cách nào để xóa nhiều ký tự khỏi chuỗi?

Xóa nhiều ký tự khỏi một chuỗi trong Python..
Sử dụng thay thế lồng nhau ().
Sử dụng dịch () & maketrans ().
Sử dụng subn ().
Sử dụng phụ ().

Làm cách nào để loại bỏ 3 ký tự cuối cùng khỏi một chuỗi trong Python?

Trong Python, chúng ta cũng có thể chọn các ký tự trong một chuỗi bằng cách sử dụng lập chỉ mục âm.Ký tự cuối cùng trong chuỗi có index -1 và nó sẽ tiếp tục giảm cho đến khi chúng ta đến đầu chuỗi.Vì vậy, để xóa 3 ký tự cuối cùng khỏi một chuỗi chọn ký tự từ 0 I.E. đến -3, tức là.select character from 0 i.e. to -3 i.e.