Hướng dẫn remove all characters from string python - xóa tất cả các ký tự khỏi chuỗi 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

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
0 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
translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
1 để 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

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
2, (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

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

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

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
1 trong lớp đó đều được thay thế bằng tham số thứ hai thành
translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
5: 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

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

Khi gọi phương thức

translation_table = dict.fromkeys(map(ord, '!@#$'), None)
unicode_line = unicode_line.translate(translation_table)
7 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)
8 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)
9 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

{ord('!'): None, ord('@'): None, ...}
1 và
{ord('!'): None, ord('@'): None, ...}
2 được sử dụng để tạo ngắn gọn 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

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

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)
8:

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

Ở đây

{ord('!'): None, ord('@'): None, ...}
5 đượ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.

Bạn có thể xóa một ký tự khỏi chuỗi python bằng cách sử dụng thay thế () hoặc dịch (). Cả hai phương thức này thay thế một ký tự hoặc chuỗi bằng một giá trị đã cho. Nếu một chuỗi trống được chỉ định, ký tự hoặc chuỗi bạn chọn sẽ bị xóa khỏi chuỗi mà không cần thay thế.

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

Không phải mọi chuỗi đều chứa các giá trị chúng tôi muốn chúng chứa. Người dùng có thể chèn biểu tượng vào trường đầu vào mà bạn không muốn xuất hiện. Bạn có thể muốn xóa bất kỳ trường hợp nào của một chữ cái cụ thể khỏi một chuỗi.

Hướng dẫn remove all characters from string python - xóa tất cả các ký tự khỏi chuỗi python

Tìm Bootcamp của bạn phù hợp

  • Karma nghề nghiệp phù hợp với bạn với bootcamp công nghệ hàng đầu
  • Truy cập các học bổng và khóa học chuẩn bị độc quyền

Chọn mối quan tâm của bạn họ Tên điện thoại Email Tên của bạn
First name

Last name

Email

Phone number

Bằng cách tiếp tục, bạn đồng ý với các điều khoản dịch vụ và chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận được các ưu đãi và cơ hội từ Karma nghề nghiệp qua điện thoại, tin nhắn văn bản và email.

Nó không quan trọng là nhân vật bạn muốn loại bỏ khỏi một chuỗi. Python có bạn bảo hiểm!

Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách xóa một ký tự hoặc bộ ký tự khỏi chuỗi. Chúng tôi sẽ đề cập đến một số ví dụ trên đường đi.

Chúng tôi sẽ thảo luận về các phương pháp sau:

  • Sử dụng phương thức thay thế ()
  • Sử dụng phương thức biến đổi ()
  • Loại bỏ ký tự cuối cùng bằng cách chỉ mục

Hãy bắt đầu nào!

Xóa ký tự khỏi chuỗi python: thay thế ()

Chức năng thay thế chuỗi () thay thế một ký tự bằng một ký tự mới. Hàm này có thể được sử dụng để thay thế bất kỳ ký tự bằng một chuỗi trống.

Chúng tôi xây dựng một chương trình yêu cầu người dùng chèn tên người dùng. Dấu gạch dưới (_) ký tự không được phép trong tên người dùng. Mở tệp Python mới và dán vào mã sau:

username = input("Choose a username: ")
final_username = username.replace("_", "")

print("Your username is: " + final_username)

Mã này yêu cầu người dùng chọn tên người dùng bằng cách sử dụng phương thức input ().

Phương thức thay thế () loại bỏ ký tự gạch dưới khỏi chuỗi gốc và thay thế tất cả các phiên bản của ký tự đó bằng một chuỗi trống. Sau đó, chúng tôi in ra tên người dùng mà không nhấn mạnh đến bảng điều khiển.

Hãy để chạy chương trình của chúng tôi:

Choose a username: pythonista_101
Your username is: pythonista101

Mã của chúng tôi đã xóa ký tự dấu gạch dưới khỏi tên người dùng mà chúng tôi đã chỉ định. Mã của chúng tôi hoạt động trên các chuỗi không chứa dấu gạch dưới:

Choose a username: pythonista101
Your username is: pythonista101

Khi một tên người dùng không bao gồm một dấu gạch dưới, không có gì xảy ra.

Xóa nhiều ký tự bằng cách sử dụng thay thế ()

Điều gì xảy ra nếu bạn muốn xóa nhiều ký tự khỏi chuỗi? Python có thể giúp bạn ra ngoài. Chúng ta có thể sử dụng phương thức thay thế () bên trong một vòng lặp để xóa nhiều ký tự khỏi chuỗi.

Trong ví dụ cuối cùng của chúng tôi, chúng tôi đã loại bỏ một nhân vật dấu gạch dưới khỏi tên người dùng. Điều gì sẽ xảy ra nếu chúng ta muốn loại bỏ tất cả các giai đoạn (dừng đầy đủ), nhấn mạnh và dấu chấm than từ chuỗi của chúng ta? Tạo một tệp Python mới và dán vào mã này:

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

Đầu tiên, chúng tôi đã yêu cầu người dùng chọn tên người dùng. Sau đó, chúng tôi đã xác định một chuỗi chứa tất cả các ký tự không nên xuất hiện trong tên người dùng của người dùng.

Tiếp theo, chúng tôi đã tạo ra một vòng lặp. Điều này cho vòng lặp lặp qua mọi nhân vật trong chuỗi không cho phép_characters. Trong mỗi lần lặp, ký tự cho vòng lặp được lặp lại sẽ được thay thế trong chuỗi tên người dùng trên mạng với một ký tự trống.

Hãy để chạy mã của chúng tôi:

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

Mã của chúng tôi đã lọc ra khoảng thời gian và dấu chấm than.

Xóa ký tự khỏi chuỗi python: dịch ()

Phương thức python dịch () thay thế các ký tự trong một chuỗi theo nội dung của bảng ký tự. Phương thức này chấp nhận một đối số: Bảng dịch với các ký tự để lập bản đồ.

Để sử dụng phương pháp này, chúng ta cần tạo một bảng dịch. Bảng này chỉ định những gì các ký tự nên được thay thế trong một chuỗi.

Hãy để sử dụng phương thức dịch () để xóa tất cả các dấu gạch dưới khỏi tên người dùng:

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

Mã này thay thế mọi phiên bản của ký tự _ _ với giá trị không có giá trị. Phương thức python ord () trả về mã unicode được liên kết với ký tự _ _. Điều này được sử dụng bởi phương thức dịch () để xác định ký tự mà chúng tôi muốn xóa.

Xóa nhiều ký tự bằng dịch ()

Bạn có thể xóa nhiều ký tự khỏi chuỗi bằng cách sử dụng dịch ().

Chúng ta có thể làm điều này bằng cách tạo một trình lặp lặp các vòng thông qua danh sách các ký tự mà chúng ta muốn xóa khỏi một chuỗi.

Hãy để loại bỏ tất cả các dấu gạch dưới, thời gian và dấu chấm than từ tên người dùng:

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

Phương thức dịch () kiểm tra xem mỗi ký tự trong chuỗi người dùng trên mạng có bằng với điểm dừng hoàn toàn, điểm nhấn dấu hay dấu gạch dưới hay không. Nếu một trong những ký tự này được tìm thấy, nó sẽ được thay thế bằng không. Điều này loại bỏ ký tự khỏi chuỗi.

Hướng dẫn remove all characters from string python - xóa tất cả các ký tự khỏi chuỗi python

"Karma nghề nghiệp bước vào cuộc sống của tôi khi tôi cần nó nhất và nhanh chóng giúp tôi kết hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi tìm thấy công việc mơ ước của mình phù hợp với các giá trị và mục tiêu của tôi trong cuộc sống!"

Sao Kim, Kỹ sư phần mềm tại Rockbot

Chúng tôi đang sử dụng danh sách Python hiểu được lặp lại thông qua mọi nhân vật trong danh sách các ký tự bị loại trừ của chúng tôi.

Hãy để thử nghiệm chương trình của chúng tôi:

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

Mã của chúng tôi đã loại bỏ thành công tất cả các ký tự đặc biệt mà chúng tôi đã chỉ định khỏi chuỗi của chúng tôi.

Python: Xóa ký tự cuối cùng khỏi chuỗi

Để loại bỏ ký tự cuối cùng khỏi một chuỗi, hãy sử dụng ký hiệu lát [: -1]. Ký hiệu này chọn ký tự tại vị trí chỉ mục -1 (ký tự cuối cùng trong danh sách). Sau đó, cú pháp trả về mọi ký tự ngoại trừ cái đó.

Cú pháp để loại bỏ ký tự cuối cùng khỏi chuỗi là:

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

Xóa ví dụ ký tự cuối cùng

Chúng tôi muốn xây dựng một chương trình loại bỏ ký tự cuối cùng khỏi số nhận dạng nhân viên. Nhân vật này cho chúng tôi biết bộ phận mà một nhân viên làm việc.

Chẳng hạn, giá trị của Miên cho chúng tôi biết một nhân viên làm việc cho bộ phận tiếp thị. Chúng tôi sẽ loại bỏ nhân vật này. Hệ thống theo dõi nhân viên này đang được thay thế bằng một hệ thống mới. Hệ thống mới theo dõi bộ phận mà một nhân viên làm việc.

Hãy để bắt đầu bằng cách yêu cầu người dùng chèn một định danh nhân viên bằng phương thức input ():

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

Tiếp theo, chúng tôi xóa ký tự cuối cùng khỏi số nhận dạng:

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

[: -1] là một thao tác lát chuỗi chuỗi loại bỏ ký tự cuối cùng khỏi danh sách. Chúng tôi sử dụng lập chỉ mục âm để truy xuất các mục từ cuối chuỗi. Bây giờ, hiển thị một số nhận dạng mới của nhân viên vào bảng điều khiển:

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

Câu lệnh định dạng () thay thế niềng răng xoăn bên trong chuỗi của chúng tôi bằng định danh mới của nhân viên. Hãy cùng chạy mã của chúng tôi và xem điều gì sẽ xảy ra:

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

Chương trình của chúng tôi loại bỏ giá trị cuối cùng trong số nhận dạng nhân viên.

Sự kết luận

Bạn có thể xóa một ký tự hoặc nhiều ký tự khỏi chuỗi bằng cách sử dụng thay thế () hoặc dịch (). Cả hai phương thức thay thế () và dịch () đều trả về cùng một kết quả: một chuỗi không có các ký tự bạn đã chỉ định.

Đối với người mới bắt đầu, phương thức thay thế () dễ sử dụng hơn. Điều này là do nó chỉ chấp nhận hai tham số.

Tham số đầu tiên là ký tự bạn muốn thay thế. Tham số thứ hai của chúng tôi là giá trị mà bạn muốn thay thế ký tự. Nếu bạn muốn thay thế nhiều ký tự, bạn có thể sử dụng một vòng lặp.

Bạn có muốn tìm hiểu thêm về Python? Kiểm tra đầy đủ của chúng tôi Cách học Hướng dẫn Python cho các mẹo chuyên gia để giúp bạn nâng cao hành trình học tập của mình.

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

Trong ví dụ sau, phương thức removeall () loại bỏ tất cả các ký tự đặc biệt khỏi chuỗi và đặt một khoảng trống thay thế chúng ...
Loại bỏ lớp công khai EXPECIALCHARACTERExample1 ..
Công khai tĩnh chính (chuỗi args []).
Chuỗi str = "#chuỗi%này chứa^ký tự*đặc biệt &." ;.
str = str.replaceall ("[^a-za-z0-9]", "") ;.

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 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ừ chuỗi.using filter() and join() In Python, you can use the filter() function to filter all the occurences of a characters from a string.