Itertools ir viens no visnoderīgākajiem Python piedāvātajiem moduļiem. Tās funkcijas atvieglo darbu ar sarakstiem un masīviem. Neatkarīgi no tā, vai jums ir nepieciešamas visas masīva vērtību permutācijas vai vēlaties grupēt rakstzīmes no virknes, Itertools var palīdzēt.

Koda rakstīšana šādiem bieži sastopamiem gadījumiem var būt nogurdinoša un ar kļūdu iespējamību. Tāpēc izstrādātāji ir izveidojuši bibliotēkas, lai to visu paveiktu jūsu vietā. Šīs funkcijas varat izmantot, importējot Itertools. Šajā rakstā jūs uzzināsit par Itertools moduli programmā Python un tā funkcijām.

Amatpersona Python dokumentācijā ir paskaidrots, ka Itertools satur iteratoru veidošanas kodu. Šis modulis nodrošina ātras un efektīvas funkcijas darbam ar sarakstiem un masīviem.

Pirms šī moduļa izmantošanas tas ir jāimportē, izmantojot šādu sintaksi:

importēt itertorus

Šajā modulī ir trīs dažādi iteratoru veidi.

  1. Bezgalīgi iteratori
  2. Kombinatoriskie iteratori
  3. Iteratoru pārtraukšana

Bezgalīgi iteratori

Bezgalīgi iteratori var palaist cilpu bezgalīgi. Šīs funkcijas biežāk tiek palaistas, izmantojot a

instagram viewer
cilpai. Ir trīs bezgalīgi iteratori.

1. skaitīt (sākt, solis)

The skaitīt () funkcijai ir nepieciešami divi parametri: sākt un solis. Cilpa sākas no sākuma vērtības un atgriež vērtības, kas pieaug pa solim, kas pēc noklusējuma ir 1. Apsveriet tālāk sniegto piemēru: cilpa sākas ar 2 un katru reizi pievienos 2. Cilpa pārtrauc, kad vērtība i kļūst par 10.

i in itertools.count (2,2):
ja i == 10:
pārtraukums
cits:
drukāt (i, end=" ")

Izvade:

2 4 6 8 

2. atkārtojiet (skaitlis, reizes, lai atkārtotu)

The atkārtojiet () funkcija pieņem divus parametrus. Pirmā ir vērtība, ko funkcija rada atkārtoti. Otrais parametrs ir to reižu skaits, kad skaitlim jāatkārtojas. Ja nenorādīsit otro parametru, cilpa darbosies bezgalīgi.

i in itertools.repeat (2,5):
drukāt (i, end=" ")

Izvade:

2 2 2 2 2 

3. cikls (ievade)

The cikls () funkcija atkārtojas caur ievadi un drukā atsevišķus vienumus noteiktā secībā. Kad tas sasniedz ievades beigas, cikls restartējas no sākuma.

c = 0
var = "12345"
i in itertools.cycle (var):
ja c == 12:
pārtraukums
cits:
c = c + 1
drukāt (i, end=" ")

Izvade:

1 2 3 4 5 1 2 3 4 5 1 2

Kombinatoriskie iteratori

Kombinatoriskie iteratori nodrošina funkcijas, lai veiktu permutācijas, kombinācijas un Dekarta skaitļus.

1. produkts (ievade)

The produkts () funkcija aprēķina norādītās ievades taisnvirziena reizinājumu. Tam ir atkārtošanas parametrs, kas aprēķina iteratora dekarta reizinājumu ar sevi. Tas ir izvēles parametrs.

masīvs = [1,2,3]
drukāt (saraksts (itertools.product (masīvs, atkārtojums=2)))
virkne = "ABC"
drukāt (saraksts (itertools.product (string, "XYZ"))))

Izvade:

1. piemērs [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
2. piemērs [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. permutācijas (ievade, izmērs)

Šī funkcija atgriež visu dotās iterācijas permutāciju kopu. Tas pieņem divus parametrus: atkārtojamo un grupas lielumu. Ja grupas lielums nav norādīts, tas veidos tāda paša garuma grupas kā pats atkārtojamais.

arr = [1,2,3,4]
drukāt (saraksts (itertools.permutations (arr, 2)))

Izvade:

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

Saistīts: Python funkcijas, kas jums jāzina

3. kombinācijas (ievade, garums)

The kombinācijas () funkcija palīdz aprēķināt dotā iteratora kombinācijas. Ņemiet vērā, ka šī funkcija saglabā ievades vienumu secību. Kamēr permutācijas ietver vērtības, kas atšķiras tikai pēc pasūtījuma, kombinācijas rada unikālas vērtības.

arr = [1,2,3,4]
drukāt (saraksts (itertools.combinations (arr, 3)))

Izvade:

[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

Iteratoru pārtraukšana

Izbeigšanas iteratori rada izvadi, pamatojoties uz ievades nosacījumiem. To vislabāk var saprast no dažām funkcijām.

1. uzkrāt (ievade, operators)

The uzkrāt () funkcija pieņem divus argumentus: iterējamo un operatoru. Tas rada izvadi, piemērojot operatoru kumulatīvā kopsummai un katram ievades elementam pēc kārtas. Operators ir neobligāts arguments. Ja jūs to neizturēsit, šī funkcija veiks pievienošanu.

importa operators
arr = [1,2,3,4]
drukāt (saraksts (itertools.accumulate (arr)))
drukāt (saraksts (itertools.accumulate (arr, operator.sub)))

Izvade:

[1, 3, 6, 10]
[1, -1, -4, -8]

2. zvaigžņu karte (funkcija, ievade)

The zvaigžņu karte () funkcija pieņem funkciju un virkņu sarakstu kā savus argumentus. Tas aprēķina atgriešanas vērtības, piemērojot funkciju katram ievades kortam. Dotajā piemērā šī funkcija aprēķinās katra kortedža maksimālo vērtību un atgriezīs to masīvā.

arr = [(1,2,3), (4,5,6), (7,8,9)]
drukāt (saraksts (itertools.starmap (max, arr)))

Izvade:

[3, 6, 9]

Saistīts: Kā Python izveidot un izmantot kopas

3. filtrs false (funkcija)

The filterfalse() funkcija atgriež vērtības, kas neatbilst nosacījumam nodotajā funkcijā. Tālāk norādītais kods noņem visas nepāra vērtības.

arr = [1,2,3,4]
drukāt (saraksts (itertools.filterfalse (lambda x: x % 2 != 0, arr)))

Izvade:

[2, 4]

Turpiniet savu Python kodēšanas ceļojumu

Tagad, kad esat uzzinājis par Itertools moduli, ir pienācis laiks izpētīt citus Python moduļus. Python ir moduļi un bibliotēkas plašam uzdevumu kopumam. Tie ietver uzlabotas koncepcijas, piemēram, Furjē transformāciju un AI/ML lietojumprogrammas.

Daži moduļi ir sarežģītāki nekā citi, un to apguve prasīs ilgāku laiku. Tkinter modulis ļauj Python izveidot pilnas GUI lietojumprogrammas.

Kā izveidot kalkulatoru programmā Tkinter

Uzlabojiet savas Python Tkinter prasmes, izmantojot šo iesācēju projektu.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Python
Par autoru
Unnati Bamania (11 publicēti raksti)

Unnati ir entuziasma pilnas kaudzes izstrādātājs. Viņai patīk veidot projektus, izmantojot dažādas programmēšanas valodas. Brīvajā laikā viņa mīl spēlēt ģitāru un ir ēst gatavošanas entuziaste.

Vairāk no Unnati Bamania

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu