logo

Python | Luo luettelo numeroista tietyllä alueella

Annettu kaksi numeroa r1 ja r2 (joka määrittää alueen), kirjoita Python-ohjelma luodaksesi luettelon annetusta alueesta (mukaan lukien).

Esimerkkejä:



 Input : r1 = -1, r2 = 1 Output : [-1, 0, 1] Input : r1 = 5, r2 = 9 Output : [5, 6, 7, 8, 9]>

Keskustellaan muutamasta lähestymistavasta Luettelon luominen numeroista tietyllä alueella Python .

Naiivi lähestymistapa silmukan avulla

Naiivi tapa luoda a lista tietyllä alueella on ensin luoda tyhjä luettelo ja liittää jokaisen kokonaisluvun seuraaja jokaiseen silmukka .

Python 3








# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> ># Testing if range r1 and r2> ># are equal> >if> (r1>=>=> r2):> >return> r1> >else>:> ># Create empty list> >res>=> []> ># loop to append successors to> ># list until r2 is reached.> >while>(r1 +1 ): res.append(r1) r1 += 1 return res # Driver Code r1, r2 = -1, 1 print(createList(r1, r2))>

>

>

Lähtö:

[-1, 0, 1]>

Listan ymmärtämisen käyttäminen

Voimme myös käyttää listan ymmärtäminen tarkoitusta varten. Iteroi vain 'tuote' for-silmukassa from r1 to r2 ja palauta kaikki 'tuote' luettelona. Tämä on yksinkertainen yhden rivin koodi.

Python 3




# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> >return> [item>for> item>in> range>(r1, r2>+>1>)]> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

Lähtö:

[-1, 0, 1]>

Python range()

Pythonissa on suora funktioalue(), joka luo numerosarjan alusta loppuun arvot ja tulostaa sarjan jokaisen kohteen. Käytämme range() kanssa r1 ja r2 ja muuntaa sitten sekvenssi luetteloksi.

Python 3




# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> >return> list>(>range>(r1, r2>+>1>))> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

Mark zuckerbergin koulutus

Lähtö:

[-1, 0, 1]>

Itert-työkalujen käyttö:

Voit myös käyttää aluetoimintoa yhdessä itertools-moduulin ketjutoiminnon kanssa luodaksesi numeroluettelon tietyllä alueella. Tämä voidaan tehdä seuraavasti:

Python 3




# Python3 Program to Create list> # with integers within given range> import> itertools> r1>=>->5> r2>=>5> #using the chain function from the itertools module> numbers>=> list>(itertools.chain(>range>(r1, r2>+>1>)))> print>(numbers)> #This code is contributed by Edula Vinay Kumar Reddy>

>

>

Lähtö

[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]>

Tämä luo luettelon numeroista r1:stä r2:een ketjuttamalla alueen elementit yhteen käyttämällä itertools-moduulin ketjutoimintoa.

Numpy.arange()

Python numpy.arange() palauttaa luettelon, jossa elementit ovat tasaisin välein intervallin mukaan. Tässä asetetaan väliksi 1 halutun lähdön saamiseksi tarpeen mukaan.

Python 3


char int javaan



# Python3 Program to Create list> # with integers within given range> import> numpy as np> def> createList(r1, r2):> >return> np.arange(r1, r2>+>1>,>1>)> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

Lähtö:

[-1, 0, 1]>

Numpyn avulla voit luoda luettelon numeroista tietyllä alueella

Tässä luomme luettelon luvuista tietyltä alueelta määritetyllä lisäyksellä.

Python 3




import> numpy as np> def> fun(start, end, step):> >num>=> np.linspace(start, end,(end>->start)> >*>int>(>1>/>step)>+>1>).tolist()> >return> [>round>(i,>2>)>for> i>in> num]> > print>(fun(>1>,>5>,>0.5>))>

>

>

Lähtö:

[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]>

Rekursion käyttö

Toinen tapa luoda numeroluettelo tietyllä alueella on käyttää rekursiota. Tämä edellyttää rekursiivisen funktion määrittämistä, joka ottaa nykyisen alueen ja palautettavan luettelon, ja sitten nykyisen alueen lisäämisen luetteloon ja funktion kutsumisen uudelleen seuraavalla alueella, kunnes alueen loppu saavutetaan.

Python 3




def> create_list(r1, r2, lst):> ># Base case: if r1 is equal to r2, return the list> >if> r1>=>=> r2>+>1>:> >return> lst> ># Otherwise, append r1 to the list and call the function again with r1 + 1> >else>:> >lst.append(r1)> >return> create_list(r1>+> 1>, r2, lst)> # Test the function> print>(create_list(>5>,>9>, []))># [5, 6, 7, 8, 9]> print>(create_list(>->1>,>1>, []))># [-1, 0, 1]> #This code is contributed by Edula Vinay Kumar Reddy>

>

>

Lähtö

[5, 6, 7, 8, 9] [-1, 0, 1]>

Tämän lähestymistavan aikakompleksisuus on O(n) ja apuavaruus O(n), missä n on listan elementtien lukumäärä.

Lähestymistapa 5: Map()- ja lambda-funktion käyttö

Tässä lähestymistavassa käytämme map()- ja lambda-funktiota luomaan luettelon numeroista annetulla alueella. map() käyttää lambda-funktiota jokaiseen sekvenssin elementtiin ja palauttaa karttaobjektin. Muunnamme karttaobjektin listaksi ja palautamme sen.

Algoritmi

Käytä map()-funktiota ja lambda-funktiota luodaksesi luettelon numeroista annetulla alueella.
Muunna karttaobjekti luetteloksi ja palauta se.

Python 3




def> create_list(r1, r2):> >return> list>(>map>(>lambda> x: x,>range>(r1, r2>+>1>)))> # Test the function> print>(create_list(>5>,>9>))># [5, 6, 7, 8, 9]> print>(create_list(>->1>,>1>))># [-1, 0, 1]>

>

>

Lähtö

[5, 6, 7, 8, 9] [-1, 0, 1]>

Aika monimutkaisuus: O(r2-r1), jossa r1 ja r2 ovat annettu alue.
Avaruuden monimutkaisuus: O(r2-r1), jossa r1 ja r2 ovat annettu alue.