【Python入門】Pythonのnext関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonには、イテレータ(iterator)から次の要素を取得するための便利な組み込み関数 next() があります。本記事では、next() 関数の基本構文や使用例、応用例を初心者向けに詳しく解説します。Python 3.11 に対応した内容となっているので、ぜひ参考にしてください。

next関数とは?

next() 関数は、イテレータから次の要素を取得するためのPythonの組み込み関数です。リストやタプルのようなイテラブルオブジェクトを直接扱うのではなく、iter() を用いてイテレータを生成し、それを next() で順に取得します。

next関数の基本構文

next() 関数の基本的な構文は以下の通りです。

next(iterator, default)
  • iterator: 次の要素を取得するイテレータ
  • default(省略可): 取り出せる要素がない場合に返されるデフォルト値(指定しない場合は StopIteration 例外が発生)

next関数の使用例

基本的な使い方

以下の例では、リストからイテレータを作成し、next() を用いて順に要素を取得します。

# イテレータの作成
nums = iter([1, 2, 3])

# next() で要素を取得
print(next(nums))  # 1
print(next(nums))  # 2
print(next(nums))  # 3

デフォルト値を設定

イテレータが終了したときに StopIteration を防ぐためにデフォルト値を設定できます。

nums = iter([1, 2, 3])
print(next(nums, "終了"))  # 1
print(next(nums, "終了"))  # 2
print(next(nums, "終了"))  # 3
print(next(nums, "終了"))  # "終了"

next関数の応用例

無限シーケンスを処理する

itertools.count() を用いて無限シーケンスを処理する例です。

import itertools

counter = itertools.count(start=1, step=2)  # 1, 3, 5, 7, ...
print(next(counter))  # 1
print(next(counter))  # 3
print(next(counter))  # 5

カスタムイテレータクラスで利用

クラス内で __iter__()__next__() を実装することで、next() を利用可能なカスタムイテレータを作成できます。

class MyIterator:
    def __init__(self, start, end):
        self.current = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        value = self.current
        self.current += 1
        return value

# イテレータを作成
my_iter = MyIterator(1, 5)
print(next(my_iter))  # 1
print(next(my_iter))  # 2
print(next(my_iter))  # 3
print(next(my_iter))  # 4

まとめ

  • next() はイテレータから次の要素を取得するPythonの組み込み関数。
  • default 値を設定すると StopIteration を回避できる。
  • itertools モジュールやカスタムイテレータと組み合わせることで応用範囲が広がる。

next() を活用して、Pythonのイテレータ操作をスムーズに行いましょう!