我对编写python相当陌生。。。尝试理解.pop()函数以及如何从列表中弹出一个项并追加到新列表。有人能帮我处理一下这段代码,看看它为什么告诉我我是从一个空列表中跳出来的吗?
more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Girl", "Boy"]
new_list = []
while len(new_list) <= 8:
stuff = more_stuff.pop()
print "Adding: ", stuff
new_list.append(stuff)
print new_list
我在运行代码时得到这个结果:
Traceback (most recent call last):
File "testpop.py", line 5, in <module>
stuff = more_stuff.pop()
IndexError: pop from empty list
您应该在
more_stuff
列表中检查您的条件,因为这将耗尽项:当
more_stuff
为空时,len(more_stuff)=0
,pop()
仍将工作。使用
list
作为条件,如果列表为空,则bool值为False
列表中的索引从零开始。
所以,在
more_stuff[7]
中,你会得到最后一个。您的代码试图在不存在的'Boy'之后弹出另一个元素。
你需要解决的是:
编辑:
你也可以通过列表理解来完成:
相关问题 更多 >
编程相关推荐