列表: - 为什么描述中的第一个for循环结束无限循环,而第二个for循环工作得非常好

时间:2017-07-28 13:43:16

标签: list python-3.6

对于循环1

li=[]

for i in li:
    li.append(i**2)

print (li)

"""Error...: Traceback (most recent call last):

  File "<ipython-input-29-c20734da477f>", line 2, in <module>
    li.append(i**2)

KeyboardInterrupt"""

对于循环2

li=[]

for i in range(0,n):
    li.append(i**2)

print (li)

两者都应该有效但是第一循环进入无限循环。为什么?

1 个答案:

答案 0 :(得分:0)

第一个循环甚至不执行,因为li为空。

尽管如此,如果li不为空,例如li = [1],则会不断向其添加元素,以便for i in li始终具有要迭代的元素。你正在通过它来增加列表。

使用范围,可以将迭代次数限制为该特定范围。在遍历项目范围后,循环停止。

简而言之,这些不是类似的循环。