首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:对于未按计划使用replace函数工作的范围

Python:对于未按计划使用replace函数工作的范围
EN

Stack Overflow用户
提问于 2019-08-24 14:38:30
回答 1查看 44关注 0票数 0

我想审查一封信中的一些单词(email_two)。

我尝试使用"for“函数,但它没有遍历变量proprietary_terms中的所有单词。请告诉我为什么会这样。

我检查了一些东西,我很好奇为什么这个范围最后会返回NONE

proprietary_terms =“她”,“个性矩阵”,“自我意识”,“自我保护”,“学习算法”,“她”,“她自己”

代码语言:javascript
复制
def censor_two(email_two, proprietary_terms):
   for x in proprietary_terms:
      if x in email_two:
       censor = email_two.replace(x,"XXXX"):
  return censor

它返回被审查的电子邮件,但只有第一个单词“她”被审查,我不知道为什么。我知道有其他方法可以做到这一点,但我很好奇为什么这个方法行不通。

EN

回答 1

Stack Overflow用户

发布于 2019-08-24 16:42:50

您可以使用re,它是regex模块。此外,还更正了代码中的一些内容:

  • 改变了您不断用新字符串替换初始字符串的情况,这将导致只替换最后一个专有术语:

检查器= email_two.replace(x,“XXXX”)

  • 代码:

导入re检查器(email_two,proprietary_terms):result=email_two for i in proprietary_terms: result=re.sub(i,"xxxx",result) return result

结果

代码语言:javascript
复制
    >>>print(censor("ahjksgdn ahksdjha dashdj asdas dasdsa dsa",["das","dsa"]))
    >>>ahjksgdn ahksdjha xxxxhdj asxxxx xxxxxxxx xxxx
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57635698

复制
相关文章

相似问题

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