【发布时间】:2020-07-13 08:30:42
【问题描述】:
挑战:https://www.codewars.com/kata/550f22f4d758534c1100025a/train/python
我的尝试:
array=["NORTH","SOUTH","SOUTH","EAST","WEST","NORTH","WEST"]
list=[]
for i in range(len(array)):
if array[i]=="NORTH":
list.append(i)
for item in array:
if item == "SOUTH":
list.append(item)
array.remove(item)
break
array.pop(i)
elif array[i]=="SOUTH":
list.append(i)
for item in array:
if item == "NORTH":
list.append(item)
array.remove(item)
break
array.pop(i)
elif array[i]=="EAST":
list.append(i)
for item in array:
if item == "WEST":
list.append(item)
array.remove(item)
break
array.pop(i)
elif array[i]=="WEST":
list.append(i)
for item in array:
if item == "EAST":
list.append(item)
array.remove(item)
break
array.pop(i)
else:
if array[i]!=None:
print(array)
else:
print(list)
问题是我尝试在终端中运行时显示此错误:
line 5, in <module>
if array[i]=="NORTH":
IndexError: list index out of range
如果你能帮我解决这个问题并帮助我改进我的代码,那就太好了。
【问题讨论】:
-
你在迭代
array时改变了它的长度——通常是个坏主意。 -
输入一个打印件,告诉您您正在尝试访问哪个索引或哪个项目。您会看到,当列表只有 n 个元素时,您将尝试迭代访问元素 n+1 的列表。
-
那我该怎么办..请纠正我
标签: python python-3.x list algorithm