2019年2月26日 星期二

[python] 用 yield 讓自己的複合型資料集合擁有 for each iteration 的功能

Iteratorable datatype 可以讓我們存取資料, 可是這些資料都必須放在記憶體中, 這是一個問題. 如果我們自訂的大批複合型資料集合體, 也想擁有讓別人 for each 等 iteration 功能, 就直接使用 yield 建立一個集合體.

作法:

  1. [建立資料集合] 用 yield 建立一個 iterable data type, 存放一堆可以 iterate 的資料集合

def createGenerator():
   mylist = range(3)
   for i in mylist:
       yield i*i

  1. 然後, 你就可以存取這個集合體的資料

mygenerator = createGenerator() # create a generator
for i in mygenerator:
    print(i)



Enjoy
Jing.