logo

Pakartokite sąrašą Python

The Sąrašas yra lygiavertis masyvams kitomis kalbomis, nes yra dinamiško dydžio.

Į Python , sąrašas yra duomenų struktūrų konteinerio tipas, naudojamas keliems duomenims saugoti vienu metu. Skirtingai nei Rinkiniai , Python sąrašai yra išdėstyti ir turi tam tikrą skaičių. Šiame straipsnyje pamatysime, kaip kartoti sąrašą Python, taip pat Python kilpą per eilučių sąrašą.



Python kartojimas per sąrašą

Pažiūrėkime visus skirtingus būdus, kaip kartoti sąrašą Python, ir jų našumo palyginimą.

Pakartokite sąrašą naudodami For ciklus

Galime kartoti sąrašą Python naudodami paprastą Už kilpą .

Python3








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

>

>

Išvestis

1 3 5 7 9>

Laiko sudėtingumas: O(n) – čia n yra elementų skaičius sąraše.
Pagalbinė erdvė: O(1) – nes nenaudojame jokios papildomos vietos.

Pakartokite sąrašą naudodami f arba ciklas ir diapazonas ()

Tuo atveju, jei norime naudoti tradicinę for kilpą, kuri kartojasi nuo skaičiaus x iki skaičiaus 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])>

>

>

Išvestis

1 3 5 7 9>

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė: O(1), kuri yra pastovi erdvė

Pakartokite sąrašą naudodami Python o kilpa

Taip pat galime kartoti Python sąrašą naudodami a o kilpa .

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>

>

>

Išvestis

1 3 5 7 9>

Laiko sudėtingumas: O(n) čia n yra sąrašo ilgis.
Pagalbinė erdvė: O(1), nes kintamiesiems i ir ilgiui naudojamas tik pastovus papildomos vietos kiekis.

Pakartokite sąrašą naudodami sąrašo supratimas

Galime naudoti sąrašo supratimas (galbūt konkretiausias būdas) kartoti sąrašą Python.

Python3




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

>

>

Išvestis

1 3 5 7 9>

Pakartokite sąrašą Python naudodami enumerate ()

Jei norime paversti sąrašą į kartotinį eilučių sąrašą (arba gauti indeksą, pagrįstą sąlygų patikrinimu, pavyzdžiui, tiesinėje paieškoje, gali reikėti išsaugoti minimalaus elemento indeksą), galite naudoti numerate() funkcija .

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

>

Android proceso acore

>

Išvestis

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

Pastaba: Netgi 2 metodas gali būti naudojamas indeksui rasti, bet 1 metodas negali būti (nebent kiekvieną iteraciją padidinamas papildomas kintamasis), o 5 metodas pateikia glaustą šio indeksavimo vaizdą.

Pakartokite per Python sąrašą naudodami iter ir kitą funkciją

Čia yra papildomas metodas naudojant iter funkciją ir kitą funkciją:

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>

>

>

Išvestis

1 3 5 7 9>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)

Pakartokite sąrašą Python, naudodami funkciją map().

Naudoti žemėlapis () funkcija pritaikyti funkciją kiekvienam sąrašo elementui.

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>

>

>

Išvestis

1 3 5 7 9>

Laiko sudėtingumas: O(n), kur n yra sąrašo ilgis.
Pagalbinė erdvė: O(1)

Python kartokite kelis sąrašus naudodami zip() funkciją

Šiame pavyzdyje funkcija zip() naudojama norint vienu metu kartoti elementus iš dviejų sąrašų, list1 ir list2, suporuojant atitinkamus elementus į eilutes, kad būtų galima spausdinti.

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

>

>

Išvestis

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

Pakartokite sąrašą Python naudodami NumPy

Labai dideliems n matmenų sąrašams (pvz., vaizdų masyvei) kartais geriau naudoti išorinę biblioteką, pvz. nelygus . Galime naudoti np. enumerate(), kad imituotų surašymo elgesį. Papildoma NumPy galia atsiranda dėl to, kad mes netgi galime valdyti elementų lankymo būdą (Fortran tvarka, o ne C tvarka, tarkime :)), tačiau vienas įspėjimas yra tas, kad np.nditer masyvą traktuoja kaip tik skaitomą. numatytasis, todėl reikia perduoti papildomas vėliavėles, tokias kaip op_flags=['readwrite'], kad būtų galima keisti elementus.

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

>

Išvestis:

0 1 2 3 4 5 6 7 8>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)