從 Python 中的字串中刪除特定字元
在 Python 中處理字串時,您可能需要刪除特定字元。最常見的方法是使用replace() 方法。然而,不幸的是,下面的程式碼似乎沒有刪除任何字元:
for char in line: if char in " ?.!/;:": line.replace(char,'')
此程式碼的問題是replace()方法不會就地修改字串。要正確替換字符,您需要將replace()方法的結果重新分配回line變數:
for char in " ?.!/;:": line = line.replace(char,'')
或者,您可以使用更簡潔和高效的方法:
import string line = line.translate(string.maketrans('', ''), '!@#$')
translate() 方法將翻譯表格作為其第二個參數。翻譯表是一個字串,其中每個字元代表要刪除的對應字元。在本例中,翻譯表包含四個字元:「!」、「@」、「#」和「$」。行中與這些字元之一相符的任何字元都將被刪除。
另一個選擇是使用正規表示式:
import re line = re.sub('[!@#$]', '', line)
sub() 方法將正規表示式模式作為第一個論點。括號中的模式指定要刪除的字元。第二個參數是用於替換匹配字元的字串。在這種情況下,空字串用於有效刪除字元。
對於Python 3,字串表示為Unicode,並且需要稍微不同的方法:
unicode_line = unicode_line.translate({ord(c): None for c in '!@#$'})
此程式碼建立一個翻譯表,其中列表中的每個字元都對應為None ,表示應將其刪除。
以上是如何在Python中高效率地刪除字串中的特定字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!