Hướng dẫn how to remove multiple elements from string in python - cách xóa nhiều phần tử khỏi chuỗi trong python

Trong bài viết này, chúng tôi sẽ thảo luận về bốn cách khác nhau để xóa nhiều ký tự khỏi một chuỗi trong Python.

Giả sử chúng ta có một chuỗi A & nbsp; Small & nbsp; mẫu & nbsp; chuỗi & nbsp; for & nbsp; thử nghiệm và một danh sách các ký tự cần bị xóa khỏi chuỗi, tức là.“A small sample String for testing” and a list of characters that need to be deleted from string i.e.

list_of_chars = ['s', 't', 'a', 'A', ' ']

Hãy cùng xem cách xóa các ký tự này khỏi chuỗi.

Xóa nhiều ký tự khỏi chuỗi bằng hàm dịch []

Lớp chuỗi trong Python, cung cấp một hàm dịch []. Nó chấp nhận một bảng dịch như một đối số và thay thế các ký tự trong chuỗi dựa trên ánh xạ trong bảng dịch. Chúng ta có thể tạo một bảng dịch, trong đó mỗi ký tự mà chúng ta muốn bị xóa khỏi chuỗi, sẽ được ánh xạ tới một chuỗi trống. Giống,translate[]. It accepts a translation table as an argument and replaces the characters in string based on the mapping in the translation table. We can create a translation table, where each character that we want to be deleted from string, will be mapped to an empty string. Like,

  • Giá trị ASCII của ‘Siêu:
  • Giá trị ASCII của ‘T,:
  • Giá trị ASCII của ‘A,:
  • Giá trị ASCII của ‘A,:
  • Giá trị ASCII của ‘‘:

Chúng tôi sẽ chuyển bảng dịch này để dịch [] hàm như một cuộc tranh luận. Do đó hàm dịch [] sẽ thay thế tất cả các lần xuất hiện của các ký tự này bằng một chuỗi trống. Về cơ bản, nó sẽ loại bỏ tất cả các lần xuất hiện của các ký tự này khỏi chuỗi. Ví dụ,

Quảng cáo

sample_str = 'A small sample String for testing'

# A list containing multiple characters, that needs to be deleted from the string.
list_of_chars = ['s', 't', 'a', 'A', ' ']

# Create a mapping table to map the characters 
# to be deleted with empty string
translation_table = str.maketrans['', '', ''.join[list_of_chars]]

# Remove multiple characters from the string
sample_str = sample_str.translate[translation_table]

print[sample_str]

Output:

mllmpleSringforeing

Nó đã loại bỏ tất cả các lần xuất hiện của nhiều ký tự khỏi chuỗi.

Xóa nhiều ký tự khỏi chuỗi bằng cách sử dụng regex

Trong Python, mô -đun Regex cung cấp một hàm để thay thế nội dung của chuỗi dựa trên mẫu Regex phù hợp. Chữ ký của chức năng là như thế này,

sub[pattern, replacement_str, original_str]

Chúng ta có thể sử dụng điều này để loại bỏ nhiều ký tự khỏi một chuỗi. Đối với điều này, chúng ta cần vượt qua một mẫu regex phù hợp với tất cả các sự xuất hiện của các ký tự đã cho. Ngoài ra, như một chuỗi thay thế, chúng ta cần vượt qua một chuỗi trống. Ví dụ, hãy để Lừa xem cách xóa các ký tự ‘S,‘ T, ‘A, A,‘ A, và ‘‘ Từ một chuỗi sử dụng Regex, ‘s’, ‘t’, ‘a’, ‘A’ and ‘ ‘ from a string using regex,

import re

sample_str = 'A small sample String for testing'

# A list containing multiple characters, that needs to be deleted from the string.
list_of_chars = ['s', 't', 'a', 'A', ' ']

# Create regex pattern to match all characters in list
pattern = '[' +  ''.join[list_of_chars] +  ']'

# Remove multiple characters from the string
sample_str = re.sub[pattern, '', sample_str]

print[sample_str]

Output:

mllmpleSringforeing

Nó đã loại bỏ tất cả các lần xuất hiện của ‘S,‘ T, ‘A,’ A, một và ‘‘ Từ chuỗi.‘s’, ‘t’, ‘a’, ‘A’ and ‘ ‘ from the string.

Xóa nhiều ký tự khỏi chuỗi bằng cách sử dụng thay thế []

Lớp chuỗi cung cấp một hàm để thay thế một chuỗi phụ trong một chuỗi, tức là.

str.replace[to_be_replaced, replacement]

Nó chấp nhận hai đối số, tức là chuỗi được thay thế và chuỗi thay thế. Nó trả về một bản sao của đối tượng chuỗi gọi nhưng với các nội dung đã thay đổi, tức là sau khi thay thế tất cả các lần xuất hiện của chuỗi phụ TO_BE_REPLACED bằng chuỗi thay thế đã cho. Vì vậy, để xóa nhiều ký tự khỏi một chuỗi bằng hàm thay thế [], hãy làm theo logic này:to_be_replaced with the given replacement string. So, to delete multiple characters from a string using replace[] function, follow this logic:

Lặp lại tất cả các ký tự sẽ bị xóa và cho mỗi ký tự, hãy chuyển nó đến hàm thay thế [] cùng với chuỗi trống. Ví dụ,

sample_str = 'A small sample String for testing'

# A list containing multiple characters, that needs to be deleted from the string.
list_of_chars = ['s', 't', 'a', 'A', ' ']

# Remove multiple characters from the string
for character in list_of_chars:
    sample_str = sample_str.replace[character, '']

print[sample_str]

Output:

mllmpleSringforeing

Nó đã loại bỏ tất cả các lần xuất hiện của nhiều ký tự, tức là ’s,’ t, ’a,’ a, một và từ chuỗi.

Xóa nhiều ký tự khỏi Chuỗi bằng Filter [] và tham gia []

Trong Python, bạn có thể sử dụng hàm Filter [] để lọc tất cả các sự cố của một ký tự từ một chuỗi. Các bước như sau,

  • Tạo hàm Lambda, chấp nhận một ký tự như một đối số và chỉ trả về đúng nếu ký tự được truyền phù hợp với bất kỳ ký tự nào cần phải xóa.
  • Cùng với chuỗi được sửa đổi, chuyển hàm LAMBDA được tạo ở trên cho hàm Filter [], làm đối số có điều kiện.
  • Filter [] Chức năng vòng lặp thông qua tất cả các ký tự của chuỗi và chỉ mang lại những ký tự mà hàm Lambda trả về đúng, tất cả các ký tự ngoại trừ các ký tự cần bị xóa.
  • Sử dụng hàm tham gia [] để kết hợp tất cả các ký tự được trả về bởi hàm Filter [].
  • Gán lại chuỗi được nối được trả về bởi hàm nối [] cho biến ban đầu. Nó sẽ cho một hiệu ứng mà chúng tôi đã xóa nhiều ký tự khỏi chuỗi.

Ví dụ,

sample_str = 'A small sample String for testing'

# A list containing multiple characters, that needs to be deleted from the string.
list_of_chars = ['s', 't', 'a', 'A', ' ']

# Filter multiple characters from string
filtered_chars = filter[lambda item: item not in list_of_chars, sample_str]

# Join remaining characters in the filtered list
sample_str = ''.join[filtered_chars]

print[sample_str]

Output:

mllmpleSringforeing

Summary:ummary:

Chúng tôi đã tìm hiểu về các cách khác nhau để xóa nhiều ký tự khỏi một chuỗi trong Python.

Bài Viết Liên Quan

Chủ Đề