Hvordan kan du lave følgende liste med range()
i Python?
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
bruge funktionen reversed()
:
reversed(range(10))
Det er meget mere meningsfuldt.
opdatering:
Hvis du vil have det til at være en liste (som btk påpegede):
list(reversed(range(10)))
Opdatering:
Hvis du kun ønsker at bruge range
for at opnå det samme resultat, kan du bruge alle parametre. range(start, stop, step)
For at generere en liste [5,4,3,2,2,1,0]
kan du f.eks. bruge følgende:
range(5, -1, -1)
Det er måske mindre intuitivt, men som kommentarerne nævner, er dette mere effektivt og den rigtige brug af range for omvendt liste.
Brug den indbyggede funktion 'range'. Signaturen er range(start, stop, step)
. Dette giver en sekvens, der giver tal, der starter med start
og slutter, hvis stop
er nået, undtagen stop
.
>>> range(9,-1,-1)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(-2, 6, 2)
[-2, 0, 2, 4]
I Python 3 producerer dette et ikke-listeobjekt range
, som fungerer effektivt som en skrivebeskyttet liste (men bruger meget mindre hukommelse, især for store intervaller).