Tiskanje seznama v obratnem vrstnem redu z range()?

Kako lahko v Pythonu s funkcijo range() ustvarite naslednji seznam?

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Rešitev

uporabite funkcijo reversed():

reversed(range(10))

To je veliko bolj smiselno.

Posodobitev:

Če želite, da je to seznam (kot je poudaril btk):

list(reversed(range(10)))

Posodobitev:

Če želite za dosego enakega rezultata uporabiti samo range, lahko uporabite vse njegove parametre. range(start, stop, step)

Na primer, če želite ustvariti seznam [5,4,3,2,1,0], lahko uporabite naslednje:

range(5, -1, -1)

To je morda manj intuitivno, vendar je, kot je omenjeno v komentarjih, to učinkovitejše in pravilno uporablja obseg za obrnjen seznam.

Komentarji (11)

Uporabite vgrajeno funkcijo 'range'. Podpis je range(start, stop, step). To ustvari zaporedje, ki daje števila, začenši z začetkom in končal, če je bil dosežen stop, brez stopa.

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

V Pythonu 3 to ustvari objekt range, ki ni seznam, ki deluje podobno kot seznam samo za branje (vendar porabi veliko manj pomnilnika, zlasti pri velikih razponih).

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