Pythonのforループとxrange()について解説します。Python 2.xでは、ループ処理をする際の繰り返し回数を指定したり、繰り返しの値をリストに格納したい時にrange()やxrange()を使います。
range()とxrange()の基本
range()とxrange()は、Python 2.xで使用される関数で、ループ処理をする際の繰り返し回数を指定したり、繰り返しの値をリストに格納するために使われます。
for i in range(0, 5, 1):
print(i)
for i in xrange(0, 5, 1):
print(i)
上記の例では、range(0, 5, 1)
とxrange(0, 5, 1)
は同じ結果を出力します。これらの関数は3つの引数を取ります。
- 繰り返しの開始となる値
- 繰り返しの回数
- 増加 (減少)する量
range()とxrange()の違い
range()とxrange()の主な違いは、range()がリストを返し、xrange()がイテレータを返す点です。この違いは、ループ処理をした時のメモリ負荷を考えた時に出てきます。
例えば、ループで1000000回といった大量のループをする際、range()でループをしようとすると、range()はまずはじめに0から999999の値を格納したリストを作ってしまいます。これではメモリに負荷をかけてしまいます。
それを解決するのが、xrange()です。xrange()はイテレータといって、次の要素にアクセスすることを繰り返すインターフェースを返しています。これにより、逐次処理ができるようになり、初めに膨大なメモリを確保しなくても良くなりました。
Python 3.xとxrange()
Python 3.xでは、xrange()は使用できません。その代わりに、range()がイテレータを返すようになりました。そのため、Python 3.xでは、大量のループ処理を行う際でもメモリ効率が良くなりました。
以上、Pythonのforループとxrange()についての解説でした。この記事がPythonの学習に役立つことを願っています。