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.
- Käyttämällä silmukalle
- Käyttämällä for loop ja range()
- Käyttää kun silmukka
- Käyttämällä listan ymmärtäminen
- Käyttämällä luetella() menetelmä
- Käyttämällä iter-toiminto ja seuraava toiminto
- Käyttämällä map()-funktio
- Zip()-funktion käyttö
- Käyttämällä NumPy moduuli
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)> |
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)