簡體   English   中英

我的python生成器函數真的很懶嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM