Python 中可以使用生成器建立迭代器嗎?


是的,我們可以在 Python 中使用迭代器建立生成器。建立迭代器很容易,我們可以使用關鍵字 `yield` 語句來建立生成器。

Python 生成器是一種建立迭代器簡單易用的方法,主要用於宣告一個像迭代器一樣工作的函式。

生成器是一個函式,我們可以一次迭代一個值,在日常生活中,每個程式設計師都會使用可迭代物件,例如列表、字串和字典等。

迭代器是一個可以透過迴圈迭代的物件。

下面的例子顯示了生成器在 Python 中引入了 `Yield` 語句,它的作用類似於返回值。

示例

def generator():
   print("program working sucessfully")
   yield 'x'
   yield 'y'
   yield 'z'
generator()

輸出

<generator object generator at 0x000000CF81D07390>

也可以使用 for 迴圈建立生成器

示例

for i in generator():
print(i)

輸出

program working sucessfully
x
y
z


迭代器物件支援兩種方法:1. **__iter__ 方法** 和 2. **__next__ 方法**

__iter__ 方法返回迭代器物件本身。主要用於迴圈和 in 語句。

__next__ 方法返回迭代器中的下一個值,如果沒有更多項返回,則應引發 StopIteration 異常。

示例

class function(object):
   def __init__(self, lowtemp, hightemp):
      self.current = lowtemp
      self.high = hightemp
   def __iter__(self):
      'Returns itself as an iterator object'
      return self
   def __next__(self):
      'Returns the next value till current is lower than high'
      if self.current > self.high:
         raise StopIteration
      else:
         self.current += 1
         return self.current - 1
c = function(3,20)
for i in c:
print(i, end=' ')

輸出

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

更新時間: 2019-07-30

276 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告