[Python] ジェネレーターに入門する
こんにちは、@yoheiMuneです。
本日はPythonのジェネレーターについて、色々とブログを書きたいと思います。
このブログではジェネレーターを自作して見たいと思います。
『入門 Python 3(O'Reilly)』
最後になりますが本ブログでは、Python・Swift・Java・フロントエンド・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
本日はPythonのジェネレーターについて、色々とブログを書きたいと思います。
目次
ジェネレーターとは
ジェネレーターとは、range
関数などの値を1つずつ生成(=ジェネレート)する仕組みです。例えば、以下のように利用します。# 値を合計してみる val = sum(range(1, 101)) print(val) # 5050 # for文で1つずつ表示する for val in range(3): print(val) # 0 # 1 # 2と、こんな感じで利用することができます。ここは簡単ですね!
このブログではジェネレーターを自作して見たいと思います。
yieldを用いてジェネレーターを自作する
yield
キーワードを用いることで、ジェネレーターを自作することができます。具体的には以下のような実装を行います。# 自作のジェネレーター def my_range(first=0, last=10, step=1): number = first while number < last: yield number number += stepそして、以下のように呼び出すことで、ジェネレーターを利用することができます。
# 自作のジェネレータを呼び出してみる ranger = my_range(1, 5) # 表示してみると、ジェネレーターであることがわかる print(ranger) <generator object my_range at 0x101a9c318> # 1つずつ値を利用する for x in ranger: print(x) # 1 # 2 # 3 # 4このように、
yield
を用いることでジェネレーターを使うことができるようになります。yeild
キーワードは他の言語でも出てくるので、覚えていて損はないと思います。参考資料
Pythonの基礎勉強は、以下の書籍を熟読して猛威勉強中です。色々と掲載されていて非常に参考になります。『入門 Python 3(O'Reilly)』
最後に
今日はPythonのジェネレーターについてブログを書きました。最初はなんのこっちゃと思っていましたが、慣れて使えるようになるとなんだかいい感じ。時を見て色々と使って見たいと思います。最後になりますが本ブログでは、Python・Swift・Java・フロントエンド・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!