【Python 基礎】イテラブルとイテレータについてわかりやすく解説

  • URLをコピーしました!

今回は、初心者がつまずきやすいポイントのイテラブルとイテレータについて、解説します。

はじめに、イテラブルとイテレータは、ひとことでいうと以下の通りです。

イテラブル:リスト、タプル、辞書など、for文 よって反復処理が可能なオブジェクト

イテレータ:イテラブルから要素を1つずつ返すもの

それぞれについて、詳しく説明していきます。

目次

イテラブルとは

イテラブル(Iterable)は、要素に順番があり、1つずつアクセス可能なオブジェクトです。

イテラブルオブジェクトには、リスト(List)、タプル(Tuple)、文字列(String)、辞書(Dictionary)、集合(Set)などがあります。

以下は、イテラブルのコードです。

# リストのイテラブル
my_list = [1, 2, 3, 4, 5]

for item in my_list:
    print(item) # リストの要素を1つずつ表示

# 文字列のイテラブル
my_string = "Hello"

for char in my_string:
    print(char) # 1文字ずつ表示

# 辞書のイテラブル
my_dict = {"name": "Bob", "age": 18, "country": "Japan"}

for key, value in my_dict.items():
    print(key, value) # キーとバリューを表示

– 出力結果

1
2
3
4
5
H
e
l
l
o
name Bob
age 18
country Japan

for文により、要素1つずつアクセスできることがわかります。

イテレータとは

逐次的にアクセス可能なオブジェクトです。

イテレータは、iter()関数を使用してイテラブルオブジェクトから生成されます。

生成したイテレータは、next()関数 で呼び出します。

コードを見たほうがイメージがつくと思います。

my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)  # イテラブルからイテレータを生成

print(next(my_iterator))  # 1つ目の要素を出力
print(next(my_iterator))  # 2つ目の要素を出力
print(next(my_iterator))  # 3つ目の要素を出力
print(next(my_iterator))  # 4つ目の要素を出力
print(next(my_iterator))  # 5つ目の要素を出力

# 定義した要素数以上を呼び出す
print(next(my_iterator))  # 6つ目の要素を出力

– 出力結果

1
2
3
4
5
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
      9 
     10 # 定義した要素数以上を呼び出す
---> 11 print(next(my_iterator))  # 6つ目の要素を出力

StopIteration:

リストの要素をnext()関数 で1つずつ呼び出しています。

まとめ

イテラブルとイテレータは、とっつきづらく、わかりにくいですが、

Python の反復処理の基礎です。

わからなくても、慌てずゆっくり理解していきましょう!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次