October 2025
Intermediate to advanced
572 pages
7h 46m
Japanese
プログラムでは固定長または可変長のシーケンスデータを処理することが多くあります。命令型プログラミング言語であるPythonならば、ループによるシーケンス処理が簡単に実装できます。ループ処理では一般的な、ループを実行するたびに変数やリスト、辞書に格納されたデータを読み込み、それに対応する状態の変更やI/O操作を行います。Pythonのループは組み込みのデータ型、コンテナ型、ユーザ定義クラスといった一般的なタスクに対して直感的に使えます。
また、Pythonはイテレータにも対応しており、データストリームを処理するために関数型の方法も使えます。つまり、シーケンスデータの構造を直接利用するのではなく、イテレータを介して抽象的にデータを扱います。イテレータを使うとプログラムが効率的になり、リファクタリングが容易になり、任意長のデータも処理できるようになります。Pythonにはイテレータを組み合わせて動作をカスタマイズできる機能も用意されています(詳細は「6章 内包表記とジェネレータ」参照)。
組み込み関数range()は整数値のシーケンスをイテレートする際に便利です。例えば、ランダムな32ビット値を生成することを考えます。
from random import randint
random_bits = 0
for i in range(32):
if randint(0, 1):
random_bits |= 1 << i
print(bin(random_bits)) # 0b11101000100100000111000010000001
文字列のリストのようなデータ構造をイテレートする場合は、シーケンスを直接イテレートできます。 ...
Read now
Unlock full access