Print a list in reverse order with range()? Print a list in reverse order with range()? python python

# Print a list in reverse order with range()?

use `reversed()` function:

``reversed(range(10))``

It's much more meaningful.

Update:

If you want it to be a list (as btk pointed out):

``list(reversed(range(10)))``

Update:

If you want to use only `range` to achieve the same result, you can use all its parameters. `range(start, stop, step)`

For example, to generate a list `[5,4,3,2,1,0]`, you can use the following:

``range(5, -1, -1)``

It may be less intuitive but as the comments mention, this is more efficient and the right usage of range for reversed list.

Use the 'range' built-in function. The signature is `range(start, stop, step)`. This produces a sequence that yields numbers, starting with `start`, and ending if `stop` has been reached, excluding `stop`.

``>>> range(9,-1,-1)       [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]>>> range(-2, 6, 2)    [-2, 0, 2, 4]``

In Python 3, this produces a non-list `range` object, which functions effectively like a read-only list (but uses way less memory, particularly for large ranges).

You could use `range(10)[::-1]` which is the same thing as `range(9, -1, -1)` and arguably more readable (if you're familiar with the common `sequence[::-1]` Python idiom).