我仍然是编码世界的新手,有时我会遇到最简单的事情......我写了下面的代码,当我想要超过它时,它会给我一个ValueError: list.remove(x): x not in list
。我已经在原始列表的副本上循环,这就是为什么我有点迷失了。这是代码:
def revrot(strng, sz):
if len(strng) == 0 or sz <= 0 or sz > len(strng):
return ''
else:
list = []
for i in strng:
list.append(i)
rest = len(strng)%sz
for i in range(0,rest):
list.pop()
sum = 0
res = ''
while len(list) != 0:
copyList = list[:]
for i in range(0,sz):
sum += 1
if sum%2 == 0:
list2 = list[:sz]
list2.reverse()
res += ''.join(list2)
print(res)
for i in range(0,sz):
list.remove(copyList[i])
else:
res += ''.join(list[1:]) + ''.join(list[0])
for i in range(0,sz):
list.remove(copyList[i])
return res
有趣的部分从while
循环开始。我以为我写了一个函数来删除list
中的元素(在范围(0:sz)中)所以在某些时候list
是空的,并且当while停止时是。{
我没有得到的是:为什么我的remove()
命令会抛出ValueError?当我单独测试时,它在控制台中完美运行:
copyList
Out[127]: ['1', '2', '3', '4', '5', '6', '7', '7', '9']
for i in range(0,4):
list.remove(copyList[i])
list
Out[129]: ['5', '6', '7', '7', '9']
这就是为什么我在努力寻找错误,因为它在控制台中工作但在编辑器中却不行。谢谢你的帮助!