Python学習編22回目です。
東京大学のPython学習ページで学んでいます。今回は4-2. イテラブルとイテレータ。聞いたことのない文字列が出てきた。
今回もGPT先生に出題してもらおう。
入力:
pythonの「イテラブル」「イテレータ」の概念を理解するための練習問題を作ってください。
出力:
Pythonの「イテラブル(iterable)」と「イテレータ(iterator)」の概念を理解するための練習問題をいくつか提案します。これらの問題は、これらの概念の理解を深め、Pythonでのイテレーション処理のスキルを向上させることを目的としています。
問題1: イテラブルの認識
以下のPythonオブジェクトの中で、イテラブルであるものを全て挙げてください。
"hello world"
(文字列)17
(整数)[1, 2, 3]
(リスト){ "apple": "red", "banana": "yellow" }
(辞書){1, 2, 3}
(セット)True
(ブール値)(1, 2, 3)
(タプル)
問題2: イテレータの作成と利用
リスト[1, 2, 3, 4, 5]
からイテレータを作成し、next()
関数を使用してすべての要素を取り出すPythonスクリプトを書いてください。
問題3: カスタムイテラブルクラスの作成
0から始まり、指定された数まで2ずつ増加する数を返すカスタムイテラブルクラスEvenNumbers
を作成してください。例えば、EvenNumbers(5)
のイテレータを作成した場合、0, 2, 4の数を順に返すようにしてください。
問題4: イテラブルとイテレータの違いの説明
Pythonにおける「イテラブル」と「イテレータ」の違いを簡潔に説明してください。
問題5: ジェネレータを使用したイテレーション
シンプルなジェネレータ関数を書いてください。この関数は、呼び出すたびに次のフィボナッチ数を返すようにしてください。
解答例
これらの問題の解答例を作成するには、Pythonのiter()
関数、next()
関数、クラスの__iter__
と__next__
メソッドの実装、ジェネレータ関数の定義などに関する知識が必要です。
これらの練習問題を解くことで、イテラブルとイテレータの概念に加えて、Pythonでのイテレーション処理の様々な側面について深い理解を得ることができます。
カスタムイテラブルクラス、ジェネレータ関数は知らない概念だ。この辺のカリキュラム考慮してくれないのは仕方ないね。
次回に続く