希望有人可以解释这个循环中发生了什么。
x=deque([(1,2,3)])
while x:
a,b,c = x.popleft()
do stuff with values in x
x.append((d,e,f))
我认为x
是一个deque
,其中包含3个不断被新值替换的项目。但是我从来没有遇到过没有某种条件的while
循环。循环如何知道何时停止?
答案 0 :(得分:0)
x=deque([(1,2,3)]) # create new deque
while x: # while not empty
a,b,c = x.popleft() # pop values and assign them to a and b and c
# do stuff with values in x - this is comment too
x.append((d,e,f)) # assumes produced new values d
#and e and f and pushes them to x
# this assumes there is always d and e and f values and stays forever in loop
所述
答案 1 :(得分:0)
正如所写,该代码是一个无限循环,因为它以与删除数据相同的速率添加数据。
如果要减小大小,则while x
将在双端队列为空时终止循环。
答案 2 :(得分:-1)
x=deque([(1,2,3)])
的布尔值为True
,因为它有一个值且不等于None
。这是一个像while 1:
或while True:
这样的infite循环。
要使此循环结束,您必须在满足条件时使用break
或设置x = None
以打破循环