LoginSignup
0
0

More than 3 years have passed since last update.

【Udemy Python3入門+応用】 63. ジェネレーター内包表記

Posted at

※この記事は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を生成できる。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0