[英]Count iterations in while loop
Python中有沒有辦法自動向while循環添加迭代計數器?
我想從以下代碼片段中刪除count = 0
和count += 1
,但仍然能夠計算迭代次數並針對布爾值elapsed < timeout
測試:
import time
timeout = 60
start = time.time()
count = 0
while (time.time() - start) < timeout:
print 'Iteration Count: {0}'.format(count)
count += 1
time.sleep(1)
最徹底的方法可能是將其轉換為一個無限for
循環測試回路以及移動到身體的開始:
import itertools
for i in itertools.count():
if time.time() - start >= timeout:
break
...
您可以改為將 while 循環移動到生成器並使用enumerate
:
import time
def iterate_until_timeout(timeout):
start = time.time()
while time.time() - start < timeout:
yield None
for i, _ in enumerate(iterate_until_timeout(10)):
print "Iteration Count: {0}".format(count)
time.sleep(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.