logo

Toista luetteloa Pythonissa

The Lista vastaa muiden kielten taulukoita, ja sen lisäetu on dynaaminen koko.

Sisään Python , luettelo on tietorakenteiden säilötyyppi, jota käytetään useiden tietojen tallentamiseen samanaikaisesti. Toisin kuin Sarjat , Pythonin luettelot ovat järjestettyjä ja niillä on tietty määrä. Tässä artikkelissa näemme kuinka iteroida luetteloa Pythonissa ja myös Python-silmukka merkkijonoluettelon läpi.



Python iteroi luettelon yli

Katsotaanpa kaikki eri tavat iteroida luetteloa Pythonissa ja niiden välinen suorituskykyvertailu.

Toista luetteloa For-silmukalla

Voimme iteroida luetteloa Pythonissa käyttämällä yksinkertaista Silmukalle .

Python 3








# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using for loop> for> i>in> list>:> >print>(i)>

>

>

Lähtö

1 3 5 7 9>

Aika monimutkaisuus: O(n) – missä n on luettelon elementtien lukumäärä.
Aputila: O(1) – koska emme käytä lisätilaa.

Toista luetteloa käyttämällä f tai silmukka ja alue ()

Jos haluamme käyttää perinteistä for-silmukkaa, joka iteroituu luvusta x numeroon y.

Python 3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # getting length of list> length>=> len>(>list>)> > # Iterating the index> # same as 'for i in range(len(list))'> for> i>in> range>(length):> >print>(>list>[i])>

>

>

Lähtö

1 3 5 7 9>

Aika monimutkaisuus: O(n), missä n on syöteluettelon pituus.
Aputila: O(1), joka on vakioavaruus

Iteroi Pythonin luettelon kautta käyttämällä jonkin aikaa silmukka

Voimme myös iteroida Python-luetteloa käyttämällä a kun silmukka .

Python 3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Getting length of list> i>=> 0> > # Iterating using while loop> while> i <>len>(>list>):> >print>(>list>[i])> >i>+>=> 1>

>

>

Lähtö

1 3 5 7 9>

Aika monimutkaisuus: O(n) missä n on listan pituus.
Aputila: O(1), koska vain vakiomäärä ylimääräistä tilaa käytetään muuttujille i ja pituudelle.

Iteroi luettelon kautta käyttämällä listan ymmärtäminen

Voimme käyttää listan ymmärtäminen (mahdollisesti konkreettisin tapa) toistaa luetteloa Pythonissa.

Python 3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using list comprehension> [>print>(i)>for> i>in> list>]>

>

>

Lähtö

1 3 5 7 9>

Iteroi luettelon läpi Pythonissa käyttämällä enumerate()

Jos haluamme muuntaa listan iteroitavaksi monikkoluetteloksi (tai saada indeksin ehtotarkistuksen perusteella, esimerkiksi lineaarisessa haussa, saatat joutua tallentamaan minimielementin indeksin), voit käyttää enumerate()-funktio .

Python 3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using enumerate()> for> i, val>in> enumerate>(>list>):> >print> (i,>','>,val)>

>

foreach java

>

Lähtö

0 , 1 1 , 3 2 , 5 3 , 7 4 , 9>

Huomautus: Jopa menetelmää 2 voidaan käyttää indeksin löytämiseen, mutta menetelmällä 1 ei (ellei ylimääräistä muuttujaa kasvateta joka iteraatiossa) ja menetelmä 5 antaa tiiviin esityksen tästä indeksoinnista.

Iteroi Pythonin listan kautta käyttämällä iter-funktiota ja seuraavaa funktiota

Tässä on lisätapa, jossa käytetään iter-funktiota ja seuraavaa funktiota:

Python 3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> # Create an iterator object using the iter function> iterator>=> iter>(>list>)> # Use the next function to retrieve the elements of the iterator> try>:> >while> True>:> >element>=> next>(iterator)> >print>(element)> except> StopIteration:> >pass>

>

>

Lähtö

1 3 5 7 9>

Aika monimutkaisuus: Päällä)
Aputila: O(1)

Toista luetteloa Pythonissa käyttämällä map()-funktiota

Käytä kartta() funktio soveltaaksesi funktiota luettelon jokaiseen elementtiin.

Python 3




# Define a function to print each element> def> print_element(element):> >print>(element)> # Create a list> my_list>=> [>1>,>3>,>5>,>7>,>9>]> # Use map() to apply the print_element() function to each element of the list> result>=> map>(print_element, my_list)> # Since map() returns an iterator, we need to consume> # the iterator in order to see the output> for> _>in> result:> >pass>

>

>

Lähtö

1 3 5 7 9>

Aika monimutkaisuus: O(n), missä n on listan pituus.
Aputila: O(1)

Python Iteroi useita listoja käyttämällä zip()-funktiota

Tässä esimerkissä zip()-funktiota käytetään kahden listan, lista1 ja lista2, elementtien samanaikaiseen iterointiin yhdistäen vastaavat elementit yhteen monikoiksi myöhempää tulostusta varten.

Python 3




list1>=> [>1>,>2>,>3>]> list2>=> [>'p'>,>'q'>,>'r'>]> # Using zip() to iterate over multiple lists simultaneously> for> i1, i2>in> zip>(list1, list2):> >print>(f>'{i1} ->{i2}'>)>

>

>

Lähtö

1 ->p 2 -> q 3 -> r>> 

Toista luetteloa Pythonissa NumPyn avulla

Erittäin suurille n-ulotteisille listoille (esimerkiksi kuvataulukolle) on joskus parempi käyttää ulkoista kirjastoa, kuten esim. nuhjuinen . Voimme käyttää np. enumerate() matkii enumeraation käyttäytymistä. NumPyn lisävoima tulee siitä, että voimme jopa hallita tapaa vierailla elementeissä (Fortran-järjestys mieluummin kuin C-järjestys, vaikkapa :)), mutta yksi varoitus on, että np.nditer käsittelee taulukkoa vain luku -tilassa. oletusarvoisesti, joten on annettava ylimääräisiä lippuja, kuten op_flags=['readwrite'], jotta se voi muokata elementtejä.

Python 3




import> numpy as geek> # creating an array using> # arrange method> a>=> geek.arange(>9>)> # shape array with 3 rows> # and 4 columns> a>=> a.reshape(>3>,>3>)> # iterating an array> for> x>in> geek.nditer(a):> >print>(x)>

>

Lähtö:

0 1 2 3 4 5 6 7 8>

Aika monimutkaisuus: Päällä)
Aputila: O(1)