※この記事はUdemyの
「現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル」
の講座を受講した上での、自分用の授業ノートです。
講師の酒井潤さんから許可をいただいた上で公開しています。
##■ジェネレーター内包表記
#####◆普通に記述した場合
def g():
for i in range(10):
yield i
g = g()
print(type(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
result
<class 'generator'>
0
1
2
3
4
#####◆ジェネレーター内包表記で記述した場合
g = (i for i in range(10))
print(type(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
result
<class 'generator'>
0
1
2
3
4
一見tupleになりそうな見た目だが、ただ()
を使うだけだとジェネレーターとなる。
g = tuple(i for i in range(10))
print(type(g))
print(g)
result
<class 'tuple'>
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
()
の頭にtuple
をつけることで、tupleを生成できる。