Stampare una lista in ordine inverso con range()?

Come puoi produrre la seguente lista con range() in Python?

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Soluzione

usare la funzione reversed():

reversed(range(10))

È molto più significativo.

Aggiornamento:

Se vuoi che sia una lista (come sottolineato da btk):

list(reversed(range(10)))

Aggiornare:

Se volete usare solo range per ottenere lo stesso risultato, potete usare tutti i suoi parametri. range(start, stop, step)

Per esempio, per generare una lista [5,4,3,2,1,0], puoi usare il seguente:

range(5, -1, -1)

Può essere meno intuitivo, ma come menzionato nei commenti, questo è più efficiente e il giusto uso del range per la lista invertita.

Commentari (11)

Usa la funzione integrata 'range'. La firma è range(start, stop, step). Questo produce una sequenza che produce numeri, iniziando da start, e finendo se stop è stato raggiunto, escludendo 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, questo produce un oggetto non-lista range, che funziona effettivamente come una lista di sola lettura (ma usa molta meno memoria, specialmente per grandi intervalli).

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