range()
との違いはよく知っていxrange()
ます。私は何か奇妙なことに気づきましたxrange()
:
>>> xrange(1,10,2)
xrange(1, 11, 2)
>>> xrange(1,10,4)
xrange(1, 13, 4)
機能的には正しいです:
>>> for item in xrange(1,10,4):
... print item
...
1
5
9
>>>
ただし、ご覧のとおり、返さxrange
れるオブジェクトの停止値は、最後の有効な値の次に高い値です。理由は何ですか?
range()
これで、Python2と同じ機能がPython3で提供xrange
され、期待どおりに動作します。
>>> range(1,10,4)
range(1, 10, 4)
>>> range(1,10,2)
range(1, 10, 2)
>>>