Python 迭代字符串列表-如何在使用索引之前替换值?

Python 迭代字符串列表-如何在使用索引之前替换值?,python,python-3.x,string,list,Python,Python 3.x,String,List,我是一名自学python的学习者,我尝试迭代我拆分的字符串中的单词列表,并使用索引检查给定的单词列表(a和b)。我现在试图从给定的要检查的单词列表中检查元素前后的单词。我成功地审查了索引之后的单词,但我无法审查索引之前的单词。以下是我使用的函数: def-censor\u-four(电子邮件,a=专有术语,b=否定词): email=email.strip() email=email.split() #我们将在此列表中追加字符串以进行输出。 输出=[] #跟踪我们在模板字符串中的位置。 索引=0

我是一名自学python的学习者,我尝试迭代我拆分的字符串中的单词列表,并使用索引检查给定的单词列表(a和b)。我现在试图从给定的要检查的单词列表中检查元素前后的单词。我成功地审查了索引之后的单词,但我无法审查索引之前的单词。以下是我使用的函数:

def-censor\u-four(电子邮件,a=专有术语,b=否定词):
email=email.strip()
email=email.split()
#我们将在此列表中追加字符串以进行输出。
输出=[]
#跟踪我们在模板字符串中的位置。
索引=0
#在这里添加一个while循环。
#对于范围内的索引(len(电子邮件)):
对于a或b中的单词:
而index0:
电子邮件[索引-1]=“0”*len(电子邮件[索引-1])
电子邮件[索引+1]=“/”*len(电子邮件[索引+1])
output.append(“*”*len(word))
指数+=1
其他:
output.append(电子邮件[索引])
指数+=1
输出=“”。连接(输出)
返回输出

我犯了什么错?有什么提示吗?

我希望我能正确理解你的意图。您需要检查两个列表中的一个列表中的单词,还需要检查单词的前后

我会改变迭代的方法

def-censor\u-four(电子邮件,a=专有术语,b=否定词):
email=email.strip()
email=email.split()
输出=[]
删失=集(a+b)
审查员下一步=错误
对于电子邮件中的word:
如果审查员下一步:
输出。追加(“/”*len(word))
审查员下一步=错误
删除中的elif单词:
如果输出:
before_word=output.pop(-1)
output.append(“0”*len(在单词之前))
output.append(“*”*len(word))
censor_next=True
其他:
output.append(word)
返回“”连接(输出)

您的代码有点晦涩难懂,问题描述也不明确。您能否提供输入和输出的示例(期望的和实际的)?同样
对于a或b中的单词:
可能不会做你想做的事-如果列表
a
不是空的,它会迭代列表
b
-我猜你想合并这些列表(
a+b
)。我尝试迭代一个名为(email)的字符串,并检查两个字符串列表a和b。这段代码的输出是这样的:“……但是***//…”我想审查,但这也是我使用[index-1]的原因。谢谢,这正是我想做的。还有一个问题:if output表示输出中的if word,对吗?
if output:
是if len(output)>0:的较短版本,因此它检查输出列表是否为空(否则弹出值会引发异常)。我只是修复了代码(在第二种情况下添加了
elif
,而不是
if
)。