(68) rangeとxrange

投稿者: | 2014年9月13日

3,073 views

この記事は最終更新から 1812日 が経過しています。

range xrange は同じように使える。

>>> for i in range(3,6):
...    print i
...
3
4
5
>>> for i in xrange(3,6):
...    print i
...
3
4
5

作られるオブジェクトはそれぞれ異なる。

>>> r = range(3,6)
>>> r
[3, 4, 5]
>>> x = xrange(3,6)
>>> x
xrange(3, 6)

でも、やっぱり同じように使える。

>>> for i in r:
...     print i
...
3
4
5
>>> for i in x:
...     print i
...
3
4
5

結局のところどう使い分ける?

rangeで生成されるのが listなのに対して、xrangeが生成するのは iteratorとのこと。
すなわち、配列要素数が増えた場合に xrangeの方がメモリを節約できるとのこと。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です