我有一個串列,其中包含一些字串型別的元素。串列中的每個專案都包含不需要的并且想要洗掉的字符。例如,我有list = ["string1.", "string2."]. 不需要的字符是:"."。因此,我不希望該字符出現在串列的任何元素中。我想要的串列應該看起來像list = ["string1", "string2"]任何幫助?我必須洗掉一些特殊字符;因此,代碼必須多次使用。
hola = ["holamundoh","holah","holish"]
print(hola[0])
print(hola[0][0])
for i in range(0,len(hola),1):
for j in range(0,len(hola[i]),1):
if (hola[i][j] == "h"):
hola[i] = hola[i].translate({ord('h'): None})
print(hola)
但是,條件 if 中有一個錯誤:“字串索引超出范圍”。有什么幫助嗎?謝謝
uj5u.com熱心網友回復:
在 python 中修改字串效率不高,因為字串是不可變的。當您修改它們時,索引可能會在一天結束時超出范圍。
list_ = ["string1.", "string2."]
for i, s in enumerate(list_):
l[i] = s.replace('.', '')
或者,沒有回圈:
list_ = ["string1.", "string2."]
list_ = list(map(lambda s: s.replace('.', ''), list_))
uj5u.com熱心網友回復:
您可以定義洗掉不需要的字符的功能。
def remove_unwanted(original, unwanted):
return [x.replace(unwanted, "") for x in original]
然后你可以像下面這樣呼叫這個函式來得到結果。
print(remove_unwanted(hola, "."))
uj5u.com熱心網友回復:
用于str.replace簡單替換:
lst = [s.replace('.', '') for s in lst]
或者re.sub用于更強大和更復雜的基于正則運算式的替換:
import re
lst = [re.sub(r'[.]', '', s) for s in lst]
以下是一些您可能會發現有用的更復雜替換的示例,例如,替換所有不是單詞字符的內容:
import re
lst = [re.sub(r'[\W] ', '', s) for s in lst]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481200.html
上一篇:遍歷所有可能性Python
