【Python】next()でイテレータの要素を順番に取り出す!
Pythonのnext()を使用することでイテレータの要素を順番に取り出すことができます。
next()とは指定したイテレータの次の要素を返す関数であり、リストやタプルなどの要素を順番に取得することができます。
しかし、next()のパラメータにはリストやタプルをそのままは指定するとエラーになり、iter()で一度イテレータ化する必要があります。
また、next()は1次元だけでなく、多次元のイテレータの要素も順番に取り出すことができます。
今回はPythonのnext()でイテレータの要素を順番に取り出す方法について以下の内容で解説していきます。
⚫︎ リスト(List)の要素を順番に取り出す
⚫︎ タプル(tuple)の要素を順番に取り出す
⚫︎ 辞書(dict)の要素を順番に取り出す
⚫︎ setの要素を順番に取り出す
⚫︎ frozensetの要素を順番に取り出す
⚫︎ 2次元のイテレータの要素を順番に取り出す場合
⚫︎ 3次元のイテレータの要素を順番に取り出す場合
目次
next()とは
next()とは、イテレータの次の要素を返し、もし返す要素が無ければStopIterationという例外が発生する関数となります。
next()の書き方
next()の書き方は下記となります。
1 |
next(イテレータ) |
next()のパラメータ
⚫︎ イテレータ:
順番に取り出したい要素のイテレータを指定する
next()のパラメータであるイテレータを指定することで、イテレータ内の要素を順番に取得することができます。
また、パラメータはリストやタプルをそのまま指定するのではなく、iter()で一度イテレータ化する必要があります。
イテレータの要素を順番に取り出すサンプルコード
イテレータの要素を順番に取り出すサンプルコードを紹介します。
リスト(List)の要素を順番に取り出す
リスト(List)の要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 |
list1 = ['value1', 'value2', 'value3', 'value4', 'value5'] print(list1) print('・リストの要素を順番に取り出す') list2 = iter(list1) print(next(list2)) print(next(list2)) print(next(list2)) print(next(list2)) print(next(list2)) |
出力結果
[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]
・リストの要素を順番に取り出す
value1
value2
value3
value4
value5
next()によってリストの要素を順番に取得しています。
タプル(tuple)の要素を順番に取り出す
タプル(Tuple)の要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 |
tuple1 = ('value1', 'value2', 'value3', 'value4', 'value5') print(tuple1) print('・タプルの要素を順番に取り出す') tuple2 = iter(tuple1) print(next(tuple2)) print(next(tuple2)) print(next(tuple2)) print(next(tuple2)) print(next(tuple2)) |
出力結果
(‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’)
・タプルの要素を順番に取り出す
value1
value2
value3
value4
value5
next()によってタプルの要素を順番に取得しています。
辞書(dict)の要素を順番に取り出す
辞書(dict)の要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
dict1 = {1: 'value1', 2: 'value2', 3: 'value3', 4: 'value4', 5: 'value5'} print(dict1) print('・辞書のキーを順番に取り出す') dict2 = iter(dict1.keys()) print(next(dict2)) print(next(dict2)) print(next(dict2)) print(next(dict2)) print(next(dict2)) print('・辞書の値を順番に取り出す') dict3 = iter(dict1.values()) print(next(dict3)) print(next(dict3)) print(next(dict3)) print(next(dict3)) print(next(dict3)) print('・辞書のキーや値を順番に取り出す') dict4 = iter(dict1.items()) print(next(dict4)) print(next(dict4)) print(next(dict4)) print(next(dict4)) print(next(dict4)) |
出力結果
{1: ‘value1’, 2: ‘value2’, 3: ‘value3’, 4: ‘value4’, 5: ‘value5’}
・辞書のキーを順番に取り出す
1
2
3
4
5
・辞書の値を順番に取り出す
value1
value2
value3
value4
value5
・辞書のキーや値を順番に取り出す
(1, ‘value1’)
(2, ‘value2’)
(3, ‘value3’)
(4, ‘value4’)
(5, ‘value5’)
next()によって辞書内のキーや値を順番に取得しています。
setの要素を順番に取り出す
setの要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 |
set1 = {'value1', 'value2', 'value3', 'value4', 'value5'} print(set1) print('・setの要素を順番に取り出す') set2 = iter(set1) print(next(set2)) print(next(set2)) print(next(set2)) print(next(set2)) print(next(set2)) |
出力結果
{‘value4’, ‘value1’, ‘value2’, ‘value5’, ‘value3’}
・setの要素を順番に取り出す
value4
value1
value2
value5
value3
value1
next()によってsetの要素を順番に取得しています。
frozensetの要素を順番に取り出す
frozensetの要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 |
frozenset1 =frozenset({'value1', 'value2', 'value3', 'value4', 'value5'}) print(frozenset1) print('・frozensetの要素を順番に取り出す') frozenset2 = iter(frozenset1) print(next(frozenset2)) print(next(frozenset2)) print(next(frozenset2)) print(next(frozenset2)) print(next(frozenset2)) |
出力結果
frozenset({‘value5’, ‘value3’, ‘value2’, ‘value1’, ‘value4’})
・frozensetの要素を順番に取り出す
value5
value3
value2
value1
value4
next()によってfrozensetの要素を順番に取得しています。
多次元のイテレータの要素を順番に取り出すサンプルコード
多次元のイテレータの要素を順番に取り出すサンプルコードをリストで紹介します。
2次元のイテレータの要素を順番に取り出す場合
2次元のイテレータの要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
list1 = [['value1', 'value2', 'value3', 'value4', 'value5'],['value6', 'value7', 'value8', 'value9', 'value10']] print(list1) print('・2次元リストの要素を順番に取り出す') list2 = iter(list1) print(next(list2)) print(next(list2)) print('・2次元リスト内の1次元リストの要素を順番に取り出す') list3 = iter(list1[0]) print(next(list3)) print(next(list3)) print(next(list3)) print(next(list3)) print(next(list3)) list4 = iter(list1[1]) print(next(list4)) print(next(list4)) print(next(list4)) print(next(list4)) print(next(list4)) |
出力結果
[[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’], [‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’]]
・2次元リストの要素を順番に取り出す
[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]
[‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’]
・2次元リスト内の1次元リストの要素を順番に取り出す
value1
value2
value3
value4
value5
value6
value7
value8
value9
value10
イテレータ化したリストの後ろにインデックスを指定しnext()を使用することで、2次元リストの要素を順番に取得しています。
3次元のイテレータの要素を順番に取り出す場合
3次元のイテレータの要素を順番に取り出してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
list1 = [ [['値1', '値2', '値3', '値4', '値5'],['値6', '値7', '値8', '値9', '値10']], [['値11', '値12', '値13', '値14', '値15'],['値16', '値17', '値18', '値19', '値20']] ] print(list1) print('・3次元リストの要素を順番に取り出す') list2 = iter(list1) print(next(list2)) print(next(list2)) print('・3次元リスト内の2次元リストの要素を順番に取り出す') list3 = iter(list1[0]) print(next(list3)) print(next(list3)) list4 = iter(list1[1]) print(next(list4)) print(next(list4)) print('・3次元リスト内の1次元リストの要素を順番に取り出す') list5 = iter(list1[0][0]) print(next(list5)) print(next(list5)) print(next(list5)) print(next(list5)) print(next(list5)) list6 = iter(list1[0][1]) print(next(list6)) print(next(list6)) print(next(list6)) print(next(list6)) print(next(list6)) list7 = iter(list1[1][0]) print(next(list7)) print(next(list7)) print(next(list7)) print(next(list7)) print(next(list7)) list8 = iter(list1[1][1]) print(next(list8)) print(next(list8)) print(next(list8)) print(next(list8)) print(next(list8)) |
出力結果
[[[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’]], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]]]
・3次元リストの要素を順番に取り出す
[[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’]]
[[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]]
・3次元リスト内の2次元リストの要素を順番に取り出す
[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’]
[‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’]
[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’]
[‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]
・3次元リスト内の1次元リストの要素を順番に取り出す
値1
値2
値3
値4
値5
値6
値7
値8
値9
値10
値11
値12
値13
値14
値15
値16
値17
値18
値19
値20
イテレータ化したリストの後ろにインデックスを指定しnext()を使用することで、3次元リストの要素を順番に取得しています。
今回のポイント
next()でイテレータの要素を順番に取得
Pythonでイテレータの要素を順番に取得するにはnext()を使用する。
⚫︎ next()のパラメータはリストやタプルをそのまま指定せず、iter()で一度イテレータ化する必要がある
⚫︎ next()はイテレータの要素を順番に取り出すことができる
(リストやタプル、辞書、set、frozensetなど)
⚫︎ next()は多次元のイテレータの要素を順番に取り出すこともできる
(イテレータ化する前にインデックスで指定する)
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。