Python 2.xの欠点range
(大きな範囲では非効率なリストを作成する) を認識しており、対応するイテレータが高速xrange
です。ただし、Python 3.x では、range
は反復子であり、xrange
削除されます。Python 2.x と Python 3.x で書かれたこれら 2 つのループを、コードが移植可能になり、反復子を使用するように記述する方法はありますか?
# Python 2.x
for i in xrange(a_lot):
use_i_in_someway(i)
# Python 3.x
for i in range(a_lot):
use_i_in_someway(i)
私は次のようなことをするかもしれないことを知っています
if(platform.python_version_tuple()[0] == '3'):
xrange = range
しかし、私はハックらしくなく、特注ではないものを考えていました。