組み込みイテレータの使用
メニューを表示するにはスワイプしてください
Python には、コレクションを表現力豊かかつメモリ効率よく処理できる複数の組み込みイテレータが用意されています。最もよく使われるものとして、enumerate、zip、map の3つがあります。
enumerateは、シーケンスをループ処理しながら各要素のインデックスと値の両方を追跡できます。zipは、複数のシーケンスを並行してイテレートし、要素同士をペアにします。mapは高階関数であり、以前にデータへ処理を適用するために使った概念です。ここではイテレータプロトコルの観点から再度取り上げます。単なるリスト処理の手段としてではなく、必要に応じて結果を生成する特殊なオブジェクトとして捉えることで、mapを静的な関数型ツールから動的かつメモリ効率の高いストリームとして理解し直します。
これらのイテレータは、並行リストの処理やデータ変換、簡潔なループ記述などに不可欠です。動画で示したように、適切に使うことでコードが簡潔になり、特に大規模または複雑なデータセットを扱う際のエラーも減らせます。
123456# Using enumerate and zip to process two lists in parallel names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] for idx, (name, score) in enumerate(zip(names, scores), start=1): print(f"{idx}. {name} scored {score}")
このコードでは、zip(names, scores) により各名前と対応するスコアがペアとなり、("Alice", 85) のようなタプルのイテレータが生成されます。これを enumerate でラップすることで、1から始まるカウンタが追加され、各イテレーションでインデックス、名前、スコアが得られます。ループ内では、リスト内での位置を先頭に付けて各生徒の名前とスコアを出力します。この方法は簡潔かつ可読性が高く、組み込みイテレータが複数のシーケンス処理をどれだけ効率化できるかを示しています。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 1