[英]Is my python generator function really lazy?
我做了簡單的生成器函數:
def myfunc(text):
for i in text[::-1]:
yield(i)
for i in myfunc("anytext"):
print(i)
將首先評估生成器函數內部的text[::-1]
還是將對其進行延遲計算(從生成器函數期望)?
在迭代之前,文本將被反轉。 別無選擇。 for
循環需要反轉的文本才能對其進行迭代。
要使其真正變得懶惰,您需要使用索引。
def myfunc(text):
for i in range(len(text) - 1, -1, -1):
yield text[i]
在Python 2中,使用xrange
代替range
。
當然,您基本上已經重新實現了內置函數reversed()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.