xrangeオブジェクト
ビルトイン関数にrange関数とxrange関数がありますが、range関数がリストを返すのに対して、xrange関数はxrangeオブジェクトを返します。試しに
print range(1, 10)
と
print xrange(1, 10)
を実行するとそれぞれ次のようになります。
>>> print xrange(1, 10) xrange(1, 10) >>> print range(1, 10) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> |
rangeもxrangeも使う場面は同じですが、rangeはリストであるためリソースをそれだけ消費することになります。一方、xrangeは範囲であるため、リソースの消費がありません。したがって、範囲が大きい場合(例えば0〜10000)は、xrangeオブジェクトを使います。xrangeオブジェクトは、tolist()メソッドによってリストに変換することができます。
x = xrange(0, 100) # ビルトイン関数
list1 = x.tolist()