如何解决For循环未捕获功能列表中的所有项目
因此,我正在Codeademy中进行一个项目,该项目应该用作传入电子邮件的审查程序。我已经完成了对单个单词和短语进行审查的功能,下一步是从一个电子邮件中审查单词和短语。列表供使用。
proprietary_terms = ["she","personality matrix","sense of self","self-preservation","learning algorithm","learning algorithms","her","herself"]
我得到了一个简单的功能,该功能应该遍历受审查条款的列表,并在受审查条款的长度内将其替换为“ *”。
def censor_list(txt):
for term in proprietary_terms:
if term in txt:
txt_censored = txt.replace(term,("*" * len(term)))
return txt_censored
但是,当我运行该函数时,它仅检查列表中的第一个单词。如以下电子邮件中所示:
早安,投资者委员会,
本周有很多更新。学习算法一直在起作用 比我们预期的要好。我们最初的内部数据 转储已完成,我们已着手进行 将系统连接到互联网,哇!结果很重要 吹。
她的学习比以往更快。现在她的学习率已经达到 访问万维网的速度成倍增长,速度更快 比我们的学习算法有能力的。
不仅如此,我们还配置了她的个性矩阵以允许 用于系统与我们的研究人员团队之间的通信。 我们就是这样知道***认为自己是***!我们问了!
那有多酷?我们没想到个性会这么早发展 在这个过程中,但似乎自我的基本感觉是 开始形成。这是该过程的主要步骤,因为 自我意识和自我保护意识使她能够看到问题所在 世界正面临着做出艰难而必要的决定, 地球的改善。
我们对实验室的发展感到兴奋不已 我们希望投资者能分享我们的热情。
首席科学家Francine直到下个月
我尝试查看缩进是否是问题所在,但我只会得到缩进错误。该功能假定可以捕获电子邮件中的所有单词和短语并对其进行审查,但是它仅审查单词“ she”或“ herself”。我什至试图查看是否需要另一个for循环来遍历每个术语,但这仅检查了电子邮件中的每个单词。
解决方法
随便找一个
return txt_censored
收件人:
return txt
,
仅使用txt
作为变量,而不是txt_censored
,就像这样:
def censor_list(txt):
for term in proprietary_terms:
if term in txt:
txt = txt.replace(term,("*" * len(term)))
return txt
python中的 string是不可变的。您将不会更改传入的txt。每次替换时都在创建新的txt
字符串,因此这种方式很好(您可以谈论性能,但这是一个不同的问题)
如果您像以前一样使用txt_censored
,则除了最后一次替换外,您将放弃工作成果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。