Python におけるコレクションに対する イテラブル というのは、「for ループなどで順次処理できるオブジェクト」 を指す言葉です。
具体的には、リスト、タプル、辞書、集合、文字列など、要素を順番に取得できる オブジェクトを指します。
イテラブル は、コレクションに限らず、ジェネレータ や ファイルオブジェクト なども含まれます。
イテラブルの特徴
- for ループで処理できる:
for
ループを使って、イテラブルの要素を順番に取得できます。Python# リストのイテレーション numbers = [1, 2, 3, 4, 5] for num in numbers: print(num) # 1, 2, 3, 4, 5 を順番に出力 # 辞書のイテレーション person = {"name": "John Doe", "age": 30, "city": "Tokyo"} for key, value in person.items(): print(key, ":", value) # name : John Doe, age : 30, city : Tokyo を出力
- iter() メソッドを持つ: イテラブルオブジェクトは、
__iter__()
メソッドを持つ必要があります。このメソッドは、イテレーターオブジェクトを返す責任があります。 - イテレーターオブジェクトを返す:
__iter__()
メソッドは、イテレーターオブジェクトを返します。イテレーターオブジェクトは、next()
メソッドを持つオブジェクトであり、イテラブルの要素を 1 つずつ 返すことができます。Python# イテレーターオブジェクトの取得 numbers = [1, 2, 3, 4, 5] iterator = iter(numbers) # イテレーターオブジェクトから要素を取得 print(next(iterator)) # 1を出力 print(next(iterator)) # 2を出力
コレクションとイテラブルの関係
- ほとんどのコレクションはイテラブルです。リスト、タプル、辞書、集合などは、すべて
__iter__()
メソッドを持ち、イテラブルオブジェクトを返します。 - ただし、すべてのオブジェクトがイテラブルなわけではありません。整数はイテラブルではありませんが、文字列はイテラブルです。
まとめ
イテラブル は、Python における重要な概念であり、コレクションを効率的に処理するのに役立ちます。 コレクションだけでなく、ジェネレータやファイルオブジェクトなど、さまざまな種類のイテラブルを活用することで、より柔軟で表現力豊かなプログラムを書くことができます。
0 件のコメント:
コメントを投稿