Een lijst in omgekeerde volgorde afdrukken met range()?

Hoe kun je de volgende lijst produceren met range() in Python?

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

gebruik reversed() functie:

reversed(range(10))

Het is veel zinvoller.

Update:

Als je wilt dat het een lijst is (zoals btk al aangaf):

list(reversed(range(10)))

Bijwerken:

Als je alleen range wilt gebruiken om hetzelfde resultaat te bereiken, kun je alle parameters ervan gebruiken. range(start, stop, stap)

Bijvoorbeeld, om een lijst [5,4,3,2,1,0] te genereren, kun je het volgende gebruiken:

range(5, -1, -1)

Het is misschien minder intuïtief, maar zoals de commentaren aangeven, is dit efficiënter en het juiste gebruik van range voor reversed list.

Commentaren (11)

Gebruik de 'range' ingebouwde functie. De signatuur is range(start, stop, stap). Dit produceert een reeks die getallen oplevert, beginnend met start, en eindigend als stop is bereikt, exclusief 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, produceert dit een range object zonder lijst, dat werkt als een alleen-lezen lijst (maar veel minder geheugen gebruikt, vooral voor grote reeksen).

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