2024年7月13日土曜日

Python におけるコレクションに対する イテラブル とは

 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 件のコメント:

コメントを投稿