Iterați peste o listă în Python
The Listă este echivalent cu matricele în alte limbi, cu avantajul suplimentar de a fi dinamic în dimensiune.
În Piton , lista este un tip de container în Data Structures, care este folosit pentru a stoca mai multe date în același timp. Spre deosebire de Seturi , listele în Python sunt ordonate și au un număr definit. În acest articol, vom vedea cum să repetăm o listă în Python și, de asemenea, Python să facem o buclă prin lista de șiruri.
Python Iterează peste o listă
Să vedem toate modalitățile diferite de a repeta o listă în Python și compararea performanței dintre ele.
- Folosind pentru buclă
- Folosind bucla for și gamă()
- Folosind un buclă while
- Folosind înțelegerea listei
- Folosind enumera() metodă
- Folosind funcția iter si următoarea funcție
- Folosind funcția map().
- Folosind funcția zip().
- Folosind NumPy modul
Iterează peste o listă folosind bucla For
Putem itera o listă în Python folosind un simplu Pentru buclă .
Python3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using for loop> for> i> in> list> :> > print> (i)> |
Ieșire
1 3 5 7 9
Complexitatea timpului: O(n) – unde n este numărul de elemente din listă.
Spatiu auxiliar: O(1) – deoarece nu folosim niciun spațiu suplimentar.
Repetați o listă folosind f sau buclă și interval()
În cazul în care dorim să folosim bucla tradițională for care iterează de la numărul x la numărul y.
Python3
# 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])> |
Ieșire
1 3 5 7 9
Complexitatea timpului: O(n), unde n este lungimea listei de intrare.
Spatiu auxiliar: O(1), care este spațiu constant
Iterați printr-o listă în Python folosind o buclă while
De asemenea, putem itera o listă Python folosind a buclă while .
Python3
# 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> |
Ieșire
1 3 5 7 9
Complexitatea timpului: O(n) unde n este lungimea listei.
Spatiu auxiliar: O(1) deoarece doar o cantitate constantă de spațiu suplimentar este utilizată pentru variabilele i și lungime.
Repetați o listă folosind înțelegerea listei
Putem folosi înțelegerea listei (posibil cel mai concret mod) de a repeta o listă în Python.
Python3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using list comprehension> [> print> (i)> for> i> in> list> ]> |
Ieșire
1 3 5 7 9
Iterați printr-o listă în Python folosind enumerate()
Dacă dorim să convertim lista într-o listă iterabilă de tupluri (sau să obținem indexul pe baza unei verificări a condiției, de exemplu în căutarea liniară, ar putea fi necesar să salvați indexul elementului minim), puteți utiliza funcția enumerate(). .
Python3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using enumerate()> for> i, val> in> enumerate> (> list> ):> > print> (i,> ','> ,val)> |
Ieșire
0 , 1 1 , 3 2 , 5 3 , 7 4 , 9
Notă: Chiar și metoda 2 poate fi folosită pentru a găsi indexul, dar metoda 1 nu poate (cu excepția cazului în care o variabilă suplimentară este incrementată la fiecare iterație), iar metoda 5 oferă o reprezentare concisă a acestei indexări.
Iterați printr-o listă în Python folosind funcția iter și următoarea funcție
Iată o abordare suplimentară folosind funcția iter și următoarea funcție:
Python3
# 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> |
Ieșire
1 3 5 7 9
Complexitatea timpului: Pe)
Spatiu auxiliar: O(1)
Iterați peste o listă în Python folosind funcția map().
Folosește Hartă() funcţie pentru a aplica o funcţie fiecărui element dintr-o listă.
Python3
# 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> |
Ieșire
1 3 5 7 9
Complexitatea timpului: O(n), unde n este lungimea listei.
Spatiu auxiliar: O(1)
Python Iterează peste mai multe liste folosind funcția zip().
În acest exemplu, funcția zip() este utilizată pentru a itera simultan elementele din două liste, list1 și list2, împerecheând elementele corespunzătoare împreună în tupluri pentru imprimarea ulterioară.
Python3
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}'> )> |
Ieșire
1 ->p 2 -> q 3 -> r>
Iterați peste o listă în Python folosind NumPy
Pentru liste n-dimensionale foarte mari (de exemplu o matrice de imagini), uneori este mai bine să folosiți o bibliotecă externă, cum ar fi numpy . Putem folosi np. enumerate() pentru a imita comportamentul de enumerare. Puterea suplimentară a NumPy vine din faptul că putem chiar controla modul de a vizita elementele (ordinea Fortran mai degrabă decât ordinea C, să zicem :)), dar singurul avertisment este că np.nditer tratează matricea ca fiind doar pentru citire de către implicit, deci trebuie să treacă steaguri suplimentare, cum ar fi op_flags=['readwrite'] pentru ca acesta să poată modifica elemente.
Python3
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)> |
Ieșire:
0 1 2 3 4 5 6 7 8
Complexitatea timpului: Pe)
Spatiu auxiliar: O(1)