Kā Python programmā ar range()
var izveidot šādu sarakstu?
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
izmantot reversed()
funkciju:
reversed(range(10))
Tas ir daudz jēgpilnāk.
Atjauninājums:
Ja vēlaties, lai tas būtu saraksts (kā norādīja btk):
list(reversed(range(10)))
Atjaunināt:
Ja vēlaties izmantot tikai range
, lai sasniegtu to pašu rezultātu, varat izmantot visus tā parametrus. range(start, stop, step)
Piemēram, lai izveidotu sarakstu [5,4,3,2,1,0]
, varat izmantot šādu:
range(5, -1, -1)
Tas var būt mazāk intuitīvi, bet, kā minēts komentāros, tas ir efektīvāk un pareizi izmanto diapazonu apgrieztam sarakstam.
Izmantojiet iebūvēto funkciju 'diapazons'. Paraksts ir range(start, stop, step)
. Tā izveido secību, kas dod skaitļus, sākot ar start
un beidzot, ja ir sasniegts stop
, izņemot stop
.
>>> range(9,-1,-1)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(-2, 6, 2)
[-2, 0, 2, 4]
Python 3 lietotnē tas rada nesarindotu range
objektu, kas efektīvi darbojas kā tikai lasāms saraksts (bet izmanto daudz mazāk atmiņas, īpaši lieliem diapazoniem).