logo

Iterujte seznam v Pythonu

The Seznam je ekvivalentní polím v jiných jazycích, s další výhodou dynamické velikosti.

v Krajta , seznam je typ kontejneru v datových strukturách, který se používá k ukládání více dat současně. Na rozdíl od Sady , seznamy v Pythonu jsou seřazeny a mají určitý počet. V tomto článku uvidíme, jak iterovat přes seznam v Pythonu a také v Pythonu procházet seznam řetězců.



Iterace Pythonu přes seznam

Podívejme se na všechny různé způsoby iterace seznamu v Pythonu a na srovnání výkonu mezi nimi.

Iterujte seznam pomocí cyklu For

Můžeme iterovat seznam v Pythonu pomocí jednoduchého Pro smyč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ýstup

1 3 5 7 9>

Časová složitost: O(n) – kde n je počet prvků v seznamu.
Pomocný prostor: O(1) – protože nepoužíváme žádný další prostor.

Iterujte seznam pomocí f nebo smyčka a rozsah()

V případě, že chceme použít tradiční cyklus for, který iteruje od čísla x k číslu 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ýstup

1 3 5 7 9>

Časová složitost: O(n), kde n je délka seznamu vstupů.
Pomocný prostor: O(1), což je konstantní prostor

Iterujte seznam v Pythonu pomocí chvilková smyčka

Můžeme také iterovat seznam Pythonu pomocí a zatímco smyč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ýstup

1 3 5 7 9>

Časová složitost: O(n) kde n je délka seznamu.
Pomocný prostor: O(1), protože pro proměnné i a délka se používá pouze konstantní množství prostoru navíc.

Iterujte seznam pomocí porozumění seznamu

Můžeme použít porozumění seznamu (možná nejkonkrétnější způsob), jak iterovat seznam v Pythonu.

Python3




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

>

>

Výstup

1 3 5 7 9>

Iterujte seznam v Pythonu pomocí enumerate()

Pokud chceme seznam převést na iterovatelný seznam n-tic (nebo získat index na základě kontroly stavu, například při lineárním vyhledávání, možná budete muset uložit index minimálního prvku), můžete použít funkce 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)>

>

kruskal algoritmus

>

Výstup

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

Poznámka: K nalezení indexu lze použít i metodu 2, ale metodu 1 nikoli (pokud se při každé iteraci nezvyšuje další proměnná) a metoda 5 poskytuje stručnou reprezentaci tohoto indexování.

Iterujte seznam v Pythonu pomocí funkce iter a další funkce

Zde je další přístup pomocí funkce iter a další funkce:

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ýstup

1 3 5 7 9>

Časová složitost: Na)
Pomocný prostor: O(1)

Iterujte seznam v Pythonu pomocí funkce map().

Použijte mapa() funkce pro použití funkce na každý prvek seznamu.

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ýstup

1 3 5 7 9>

Časová složitost: O(n), kde n je délka seznamu.
Pomocný prostor: O(1)

Iterace Pythonu přes více seznamů pomocí funkce zip().

V tomto příkladu je funkce zip() použita k současnému iterování prvků ze dvou seznamů, seznam1 a seznam2, párování odpovídajících prvků dohromady v nicích pro následný tisk.

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ýstup

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

Iterujte seznam v Pythonu pomocí NumPy

Pro velmi rozsáhlé n-rozměrné seznamy (například pole obrázků) je někdy lepší použít externí knihovnu jako např nemotorný . Můžeme použít np. enumerate() k napodobení chování výčtu. Další síla NumPy pochází ze skutečnosti, že můžeme dokonce ovládat způsob návštěvy prvků (Řád Fortran spíše než řád C, řekněme :)), ale jedinou výhradou je, že np.nditer zachází s polem pouze pro čtení výchozí, takže člověk musí předat další příznaky, jako je op_flags=['readwrite'], aby mohl upravovat prvky.

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ýstup:

0 1 2 3 4 5 6 7 8>

Časová složitost: Na)
Pomocný prostor: O(1)