Python 如何循环遍历字符串并逐个删除字符
提供了一个数字和一个单词。例如:Python 如何循环遍历字符串并逐个删除字符,python,loops,Python,Loops,提供了一个数字和一个单词。例如: value = 3 word = 'NAME' 我必须循环遍历单词NAME,每次删除一个字母,最后显示剩余的最后一个字母。删除的模式是:从第一个字母开始,在一个循环中前进通过value字母(一旦到达末尾,从索引0开始),然后删除到达的字母 例如,如果值为3。它将从N开始计数3,并首先删除M 剩余的是NAE-从下一个字母(现在是E)开始计数到3,然后A将被删除 剩余的是NE-计数到3,从E开始,然后将删除E,只剩下N。结果将显示为N。我无法找到一种方法来构造一个
value = 3
word = 'NAME'
我必须循环遍历单词NAME
,每次删除一个字母,最后显示剩余的最后一个字母。删除的模式是:从第一个字母开始,在一个循环中前进通过value
字母(一旦到达末尾,从索引0开始),然后删除到达的字母
例如,如果值为3
。它将从N
开始计数3
,并首先删除M
剩余的是NAE
-从下一个字母(现在是E
)开始计数到3
,然后A
将被删除
剩余的是NE
-计数到3
,从E
开始,然后将删除E
,只剩下N
。结果将显示为N
。我无法找到一种方法来构造一个循环来完成这个迭代
到目前为止,我已经手动完成了,并使其像
如果值==4:
打印('A')
elif值==1:
打印('E')
elif值==2:
打印('N')
这是不实际的,因为该值介于1-100之间。任何其他解决方案,通过该解决方案将自动迭代、删除并显示最后一个字母。您实际上无法从字符串中“删除”字符,因为字符串是不可变的。所能做的是使用修改后的字符串重新赋值
对于循环,可以使用%
(模数)操作符来实现循环效果。首先,您需要在每次迭代中标记要计数的第一个索引:
start = 0
然后我们将继续迭代,直到只剩下一个字母:
while len(word) > 1:
现在我们要找到下一个要删除的字母的索引。正如我所说,通过使用%
,我们将在最后一个字母之后回到0
:
to_remove = (start + value - 1) % len(word)
现在我们需要实际删除找到的字母,正如我所解释的,我们必须重新分配变量,我们将使用切片来删除字母:
word = word[:to_remove] + word[to_remove+1:]
总的来说,我们有一些类似的东西:
def删除字母(单词、值):
开始=0
而len(word)>1:
删除=(开始+值-1)%len(字)
开始=删除
word=word[:to_remove]+word[to_remove+1:]
回信
举几个例子:
删除字母('NAME',3)
“不”
>>>删除字母('NAME',4)
“A”
>>>删除字母(“名称”,5)
“A”
我可以给你看另一个例子。假设值=5,单词='NAME'第1步-计数从N开始,当它达到5时,它会删除在本例中为N的字母。第2步-计数从A开始,当它达到5时,该字母被删除,即M。现在剩下的AE第3步-计数从E开始,当它达到5时,该字母被删除,即E。结果-A。endHi Samad,欢迎使用堆栈溢出!这看起来可能是一个家庭作业问题,因此我希望看到更多的尝试来编写您自己的实现。您可以阅读更多有关的详细信息。一些帮助您解决问题的建议。我建议您研究并思考如何使用循环不断删除项目,直到只剩下一个项目。杰夫:这不是什么家庭作业,但作为自学的一部分,我自己学的。这不是全部工作。实际上,这只是整个编码的一部分,但非常关键。我一直试图从列表中删除元素,但无法循环遍历单词并删除。