Python2では、xrange()
という関数がありました。この関数は、引数に設定した値を元に連続した数のイテレータを返す機能を持っていました。
xrange関数とは
xrange()
関数は、Python2系で引数に設定した値を元に連続した数のイテレータを返す関数です。Python3系からはxrange()
関数の特徴だった部分をrange()
関数が引き継いだため使えなくなりました。
range関数とxrange関数の違い
range()
関数とxrange()
関数は非常に近い動きをします。二つとも繰り返し処理で使えることも同じで設定する引数も同じですが違いは戻り値が違います。range()
関数の戻り値は繰り返し処理で繰り返す値が入ったリストであるのに対し、xrange()
はイテレータと呼ばれるxrange
オブジェクトが戻ってきます。
xrange関数の使い方
xrange()
関数の記述方法は以下の通りです。
xrange(繰り返しの開始の値, 繰り返しの回数, 増減(減少)する量)
第1引数には繰り返しを開始する値を設定します。デフォルトは0です。第2引数には繰り返しの回数を指定します。これはデフォルト値がないので必ず設定します。第3引数には増減値を設定します。こちらのデフォルト値は1ずつ増加となります。
Python3とxrange
Python3では、xrange()
は使えなくなり、その代わりにrange()
がxrange()
の特性を引き継ぎました。そのため、Python3でxrange()
を使おうとするとNameError: global name 'xrange' is not defined
というエラーが出ます。Python3でxrange()
のような機能を使いたい場合は、range()
を使用します。