下面是一段代码,一开始似乎很管用,但将我的holding变量填充为一半,而将另一个变量留在我试图从中给出列表元素的列表中。最后一个元素。我不知道为什么这不是遍历整个flist。救命啊?你知道吗
谢谢 森博尔
def reverse(text):
flist = []
holding = ""
for i in str(text):
flist.append(i)
print(flist)
for i in flist:
holding = holding + flist[-1]
del flist[-1]
print(holding)
print(flist)
reverse("JamesBond")
正如this comment所说的,问题是您在遍历列表时修改了它。你知道吗
基本上,
for i in range plist
不会遍历所有的元素,因为在循环遍历时会缩短列表。这就是您在迭代列表时所发生的事情。你知道吗你能做的就是这样
还是这个
或者可以使用内置的
reversed
函数,如equaio did。你知道吗从字符串创建列表时,可以使用列表.理解地址:
[文本中i代表i]
您可以通过使用enumerate来逆转这种情况,例如:
[text[-ind-1]表示ind,i在枚举中(text)]
而不是在遍历列表时尝试修改列表。相反,您应该做的只是创建一个新字符串,并以相反的顺序附加字母。您可以使用
range
倒计时:但是,在python中实现这一点的最佳方法是使用切片,在切片中,您可以简单地执行以下操作:
相关问题 更多 >
编程相关推荐