首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换列表中字符串中的字符?

如何替换列表中字符串中的字符?
EN

Stack Overflow用户
提问于 2022-05-25 13:42:28
回答 3查看 116关注 0票数 0

我有一个列表,其中包含一些字符串类型的元素。列表中的每一项都有不需要的字符,需要删除。例如,我有list = ["string1.", "string2."]。不需要的字符是:"."。因此,我不希望这个字符出现在列表的任何元素中。我想要的列表应该看起来像list = ["string1", "string2"],有帮助吗?我必须删除一些特殊字符;因此,代码必须多次使用。

代码语言:javascript
复制
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超出范围“。有什么帮助吗?谢谢

EN

回答 3

Stack Overflow用户

发布于 2022-05-25 13:47:33

修改字符串在python中是无效的,因为字符串是不可变的。当你修改它们的时候,指数可能会在一天结束时超出范围。

代码语言:javascript
复制
list_ = ["string1.", "string2."]

for i, s in enumerate(list_):
    l[i] = s.replace('.', '')

或者,没有循环:

代码语言:javascript
复制
list_ = ["string1.", "string2."]

list_ = list(map(lambda s: s.replace('.', ''), list_))
票数 0
EN

Stack Overflow用户

发布于 2022-05-25 13:47:44

您可以定义用于删除不需要的字符的函数。

代码语言:javascript
复制
def remove_unwanted(original, unwanted):
    return [x.replace(unwanted, "") for x in original]

然后,您可以像下面这样调用这个函数来获得结果。

代码语言:javascript
复制
print(remove_unwanted(hola, "."))
票数 0
EN

Stack Overflow用户

发布于 2022-05-25 13:54:53

使用str.replace进行简单的替换:

代码语言:javascript
复制
lst = [s.replace('.', '') for s in lst]

或者使用re.sub进行更强大和更复杂的基于正则表达式的替换:

代码语言:javascript
复制
import re
lst = [re.sub(r'[.]', '', s) for s in lst]

下面是一些您可能认为有用的更复杂的替换的例子,例如,替换所有不是单词字符的内容:

代码语言:javascript
复制
import re
lst = [re.sub(r'[\W]+', '', s) for s in lst]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72378766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档