logo

Iterujte zoznam v Pythone

The Zoznam je ekvivalentný poliam v iných jazykoch s ďalšou výhodou dynamickej veľkosti.

In Python , zoznam je typ kontajnera v Data Structures, ktorý sa používa na ukladanie viacerých údajov súčasne. Na rozdiel od Súpravy , zoznamy v Pythone sú usporiadané a majú určitý počet. V tomto článku uvidíme, ako iterovať cez zoznam v Pythone a tiež prechádzať zoznamom reťazcov v Pythone.



Iterácia Pythonu cez zoznam

Pozrime sa na všetky rôzne spôsoby iterácie zoznamu v Pythone a na porovnanie výkonu medzi nimi.

Iterujte zoznam pomocou cyklu For

Zoznam v Pythone môžeme iterovať pomocou jednoduchého Pre slučku .

Python3








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

>

>

Výkon

1 3 5 7 9>

Časová zložitosť: O(n) – kde n je počet prvkov v zozname.
Pomocný priestor: O(1) – keďže nevyužívame žiadny ďalší priestor.

Iterujte zoznam pomocou f alebo cyklus a rozsah ()

V prípade, že chceme použiť tradičný cyklus for, ktorý iteruje z čísla x na číslo 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])>

>

>

Výkon

1 3 5 7 9>

Časová zložitosť: O(n), kde n je dĺžka zoznamu vstupov.
Pomocný priestor: O(1), čo je konštantný priestor

Iterujte cez zoznam v Pythone pomocou chvíľková slučka

Môžeme tiež iterovať zoznam Python pomocou a pričom slučka .

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>

>

>

Výkon

1 3 5 7 9>

Časová zložitosť: O(n) kde n je dĺžka zoznamu.
Pomocný priestor: O(1), pretože pre premenné i a dĺžka sa používa iba konštantné množstvo priestoru navyše.

Iterujte zoznam pomocou porozumenie zoznamu

Môžeme použiť porozumenie zoznamu (možno najkonkrétnejší spôsob), ako iterovať zoznam v Pythone.

Python3




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

>

>

Výkon

1 3 5 7 9>

Iterácia cez zoznam v Pythone pomocou enumerate()

Ak chceme zoznam previesť na iterovateľný zoznam n-tic (alebo získať index na základe kontroly stavu, napríklad pri lineárnom vyhľadávaní možno budete musieť uložiť index minimálneho prvku), môžete použiť funkciu 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)>

>

jadro java

>

Výkon

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

Poznámka: Dokonca aj metóda 2 sa dá použiť na nájdenie indexu, ale metóda 1 nie (pokiaľ sa pri každej iterácii nezvyšuje ďalšia premenná) a metóda 5 poskytuje stručnú reprezentáciu tohto indexovania.

Iterujte cez zoznam v Pythone pomocou funkcie iter a nasledujúcej funkcie

Tu je ďalší prístup pomocou funkcie iter a nasledujúcej funkcie:

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>

>

>

Výkon

1 3 5 7 9>

Časová zložitosť: O(n)
Pomocný priestor: O(1)

Iterujte zoznam v Pythone pomocou funkcie map().

Použi mapa() funkciu použiť funkciu na každý prvok zoznamu.

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>

>

>

Výkon

1 3 5 7 9>

Časová zložitosť: O(n), kde n je dĺžka zoznamu.
Pomocný priestor: O(1)

Iterácia Pythonu cez viacero zoznamov pomocou funkcie zip().

V tomto príklade je funkcia zip() použitá na súčasné iterovanie prvkov z dvoch zoznamov, zoznam1 a zoznam2, pričom sa zodpovedajúce prvky spárujú do n-tíc na následnú tlač.

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}'>)>

>

>

Výkon

1 ->p2 -> q3 -> r>

Iterujte zoznam v Pythone pomocou NumPy

Pre veľmi veľké n-rozmerné zoznamy (napríklad pole obrázkov) je niekedy lepšie použiť externú knižnicu ako napr nemotorný . Môžeme použiť np. enumerate() na napodobnenie správania enumerácie. Dodatočná sila NumPy pochádza zo skutočnosti, že môžeme dokonca kontrolovať spôsob návštevy prvkov (napríklad poradie Fortran namiesto poradia C :)), ale jedinou výhradou je, že np.nditer považuje pole za iba na čítanie. predvolené, takže na to, aby bolo možné upravovať prvky, musíte zadať ďalšie príznaky, ako napríklad op_flags=['readwrite'].

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)>

>

>

Výkon:

0 1 2 3 4 5 6 7 8>

Časová zložitosť: O(n)
Pomocný priestor: O(1)