[Python]range()を逆順にするには?

python

どうも、ちょげ(@chogetarou)です。

range()を逆順にする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

range()を逆順にする方法は、3つあります。

reversed()関数

1つ目は、reversed()関数を使う方法です。

具体的には、range()をreversed()の引数に指定します。

reversed(range(start, end))

上記のreverse()は、range()を逆順にしたrange()を返します。

使用例

rev_range = reversed(range(1, 5))

print(list(rev_range)) #[4, 3, 2, 1]

スライス

2つ目は、スライスを使う方法です。

具体的には、range()を[::-1]でスライスします。

range(start, end)[::-1]

上記のrange()[::-1]は、range()を逆順にスライスしたrangeを返します。

使用例

rev_range = range(1, 6)[::-1]

print(list(rev_range)) #[5, 4, 3, 2, 1]

第3引数

3つ目は、range()の第3引数を使う方法です。

引数でrange()を逆順にするには、第3引数を使います。

まず、range()の第1引数と第2引数を逆にします。

そして、第3引数に「-1」を指定します。

#range(start, end)を逆順に
range(end, start, -1)

上記のrange()は、第1引数から第2引数までの値を降順(通常の逆順)で生成します。

使用例

rev_range = range(6, 1, -1)

print(list(rev_range)) #[6, 5, 4, 3, 2]

まとめ

range()を逆順にする方法は、次の3つです。

  • reversed()関数を使う方法
  • スライスを使う方法
  • range()の第3引数を使う方法

コメント

タイトルとURLをコピーしました