今回は、初心者がつまずきやすいポイントのイテラブルとイテレータについて、解説します。
はじめに、イテラブルとイテレータは、ひとことでいうと以下の通りです。
イテラブル:リスト、タプル、辞書など、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 の反復処理の基礎です。
わからなくても、慌てずゆっくり理解していきましょう!
Python を学びたいひとにおすすめの本 3選
今回は、Python を学びたいひとにおすすめの参考書を3冊紹介します!