1
def g():
for i in range(10):
yield i
g = g()
print(next(g))
print(next(g))
print(next(g))
1の実行結果
0
1
2
これを内包表記で書くと
ジェネレーター内包表記
g = (i for i in range(10))
for j in range(3):
print(next(g))
ジェネレーター内包表記の実行結果
0
1
2
()で囲っているので一見、
タプルの様にも見えなくはない。
タプルの内包表記は下記の様になる。
タプルの内包表記
t = tuple(i for i in range(10))
print(t)
タプルの内包表記実行結果
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
ジェネレーター内包表記2
g = (i for i in range(10))
for j in g:
print(j)
ジェネレーター内包表記2の実行結果
0
1
2
3
4
5
6
7
8
9
ジェネレーター内包表記3
g = (i for i in range(10) if i % 3 == 0)
for j in g:
print(j)
ジェネレーター内包表記3の実行結果
0
3
6
9