python yield 簡單理解

2021-09-26 23:36:45 字數 753 閱讀 3503

要想理解yield的概念,我們必須理解python中迭代器生成器的概念與作用。

1.迭代器(iterables)

python中可以直接作用於for迴圈的物件,比如:列表、元祖、字典、集合、字串等統稱為可迭代物件。

迭代器是乙個實現了迭代器協議的物件,其可以呼叫next()方法得到下乙個結果,在結果末尾呼叫會產生stopiteration。此類物件可以使用for 或其他遍歷工具進行迭代。

優點:迭代器非常的便利,因為你可以想取多少便取多少,

缺點:但是你得儲存所有的值,其中很多值都完全沒有必要每次都保持在記憶體中,當資料過多時,特別容易引起程式出現問題。

當你建立乙個list,你可以乙個乙個的獲取,這種列表就稱為迭代:

# 在py檔案執行

mylist = [1, 2, 3]

for i in mylist:

print(i)

輸出

1

23

生成器(generators)

生成器是與迭代器協議相關的,而且生成器都是迭代器。它是python中一種一邊迴圈一邊計算的機制,可以節省大量空間。參考文章:

Python yield的理解與簡單測試

在學習非同步io,會涉及到協程,最簡單的協程,可以用yield來模擬,最初學習yield的時候就沒搞太明白,今天看了些部落格,終於搞得懂了。下面給出乙個作者的總結的知識點,讓我理解了。謝謝 主要的掌握 1.通常的for.in.迴圈中,in後面是乙個陣列,這個陣列就是乙個可迭代物件,類似的還有鍊錶,字...

python yield用法,簡單

學習python的過程過程彙總,經常會遇到yield,但是經常是懵逼的狀態,到底是怎麼用的,自己寫了乙個函式後就明白了,其實很簡單,看下面就懂了。函式中yield用法def yield tst n while n 20 yield 返回 遇到yield就返回yield後面的值,相當於return 返...

python yield生成器的簡單介紹

在python語言中,函式是重要的組成部分,函式在定義好後,呼叫時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式的結束 最後一行 可以隱式地看作返回為none 函式有一下幾個特點 例如 defgenerator n for i in range n yield i for i...