我有一个列表,其中包含一些字符串类型的元素。列表中的每一项都有不需要的字符,需要删除。例如,我有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中有一个错误:"string超出范围“。有什么帮助吗?谢谢
发布于 2022-05-25 13:47:33
修改字符串在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_))发布于 2022-05-25 13:47:44
您可以定义用于删除不需要的字符的函数。
def remove_unwanted(original, unwanted):
return [x.replace(unwanted, "") for x in original]然后,您可以像下面这样调用这个函数来获得结果。
print(remove_unwanted(hola, "."))发布于 2022-05-25 13:54:53
使用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://stackoverflow.com/questions/72378766
复制相似问题