Pythonでrange()
を使って次のようなリストを作るにはどうしたらいいでしょうか?
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
関数 reversed()
を使用します。
reversed(range(10))
より意味のあるものになります。
アップデート:。
リストにしたい場合は(btkさんが指摘したように)。
list(reversed(range(10)))
更新します。
同じ結果を得るためにrange
だけを使いたい場合は、そのパラメータをすべて使うことができます。range(start, stop, step)
例えば,リスト [5,4,3,2,1,0]
を生成するには,次のようにします.
range(5, -1, -1)
直感的ではないかもしれませんが、コメントにもあるように、これはより効率的で、逆リストのためのレンジの正しい使い方です。
組み込み関数 'range'を使用します。シグネチャはrange(start, stop, step)
です。 これは、start
から始まり、stop
に到達した場合に終了する、stop
を除いた数値を得るシーケンスを生成します。
>>> range(9,-1,-1)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(-2, 6, 2)
[-2, 0, 2, 4]
Python 3 では、これは非リストの range
オブジェクトを生成します。このオブジェクトは実質的に読み取り専用のリストのように機能します(しかし、特に大きな範囲ではメモリ使用量が非常に少なくなります)。