如何在Python中去除字串中除數字外的所有字元?


在本文中,我們將瞭解如何在Python中去除字串中除數字外的所有字元。

第一種方法是使用for迴圈中的if語句,並使用join()方法將它們連線起來。我們將使用for迴圈迭代字串,然後使用if語句檢查每個字元是否是數字,如果是數字,則繼續下一個字元,否則將替換該字元。

要重複迭代序列,請使用for迴圈。此功能更類似於在其他面向物件程式語言中看到的迭代器方法,並且不太像在其他程式語言中找到的for關鍵字。for迴圈允許我們針對列表、元組、集合等的每個元素執行一系列指令。

示例

在下面的示例中,我們以字串作為輸入,並使用for迴圈和if語句去除除數字外的所有字元

str1 = "W3lc0m3"
print("The given string is:")

print(str1)

print("Removing all the characters except digits")
print(''.join(i for i in str1 if i.isdigit()))

輸出

上面示例的輸出如下所示

The given string is:
W3lc0m3
Removing all the characters except digits
303

使用filter()和lambda()

第二種方法是使用filter()lambda()。我們將使用lambda()函式迭代字串,並使用filter()方法過濾掉非數字字元,然後列印只包含數字的輸出字串,去除所有其他字元。

示例

在下面的示例中,我們以字串作為輸入,並使用filter()lambda()去除除數字外的所有字元,並列印結果字串。

str1 = "W3lc0m3"

print("The given string is:")
print(str1)

print("Removing all the characters except digits")
print(list(filter(lambda i: i.isdigit(), str1)))

輸出

上面示例的輸出如下所示

The given string is:
W3lc0m3
Removing all the characters except digits
['3', '0', '3']

使用正則表示式

第二種技術使用正則表示式。匯入re庫,如果尚未安裝,請安裝它以使用它。匯入re庫後,我們可以使用正則表示式“\D”。我們將在re.sub函式中使用術語“\D”來表示除數字以外的所有字元,並將非數字字元替換為空格。

示例

在下面的示例中,我們以字串作為輸入,並使用正則表示式去除除數字以外的所有字元,並列印結果字串

import re
str1 = "W3lc0m3"

print("The given string is:")
print(str1)

print("Removing all the characters except digits")
print(re.sub("\D", "", str1))

輸出

上面示例的輸出如下所示

The given string is:
W3lc0m3
Removing all the characters except digits
303

更新於:2022年12月7日

9K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.