在下面的代碼中,一個計數是用一個兩元素列表壓縮的。我預計這個櫃檯被稱爲兩次,但它被稱爲三次。爲什麼?壓縮產生的壓縮過於頻繁嗎?
def equivalent_count(start=0, step=1):
"""From python docs for itertools.count."""
n = start
while True:
print('count in loop =', n)
yield n
n += step
c = equivalent_count()
l = [0, 1]
for i, j in zip(c, l):
pass
的輸出是:
count in loop = 0
count in loop = 1
count in loop = 2
爲zip
狀態的文檔, 「當最短輸入可迭代耗盡該迭代停止。」
這導致了一個新的規則(至少對我來說)'''itertools。 count'''生成器調用必須在'''zip'''的參數中最後。 – lemi57ssss