【メモ】【Python】リスト内包表記っぽいgeneratorに関して
generatorは次の形でも表現できる
generatorは大抵def
とyield
の組み合わせで表現される。
しかし、それ以外にもgeneratorはリスト内包表記的に生み出すこともでき、この方が簡潔な気がした。
import numpy as np # 2行4列のアレイを作る arr1 = np.array([[1,2,3,4],[5,6,7,8]]) print("arr1 == \n", arr1) b = (i ** 2 for j in arr1 for i in j) print(b.__next__()) print(b.__next__()) print(b.__next__()) print(b.__next__()) print(b.__next__()) print(b.__next__()) print(b.__next__()) print(b.__next__())
結果
arr1 == [[1 2 3 4] [5 6 7 8]] 1 4 9 16 25 36 49 64