„Itertools“ yra vienas iš naudingiausių „Python“ teikiamų modulių. Dėl jo funkcijų dirbti su sąrašais ir masyvais lengva. Nesvarbu, ar jums reikia visų masyvo reikšmių permutacijų, ar norite sugrupuoti simbolius iš eilutės, „Itertools“ gali padėti.
Rašyti kodą tokiais įprastais atvejais gali būti nuobodu ir gali kilti klaidų. Todėl kūrėjai sukūrė bibliotekas, kad visa tai padarytų už jus. Šias funkcijas galite naudoti importuodami Itertools. Šiame straipsnyje sužinosite apie Itertools modulį Python ir jo funkcijas.
Oficialus Python dokumentacijoje paaiškinama, kad Itertools turi kodą, skirtą kurti iteratorius. Šis modulis suteikia greitas ir efektyvias funkcijas dirbant su sąrašais ir masyvais.
Prieš naudodami šį modulį, turite jį importuoti naudodami šią sintaksę:
importuoti iterto įrankius
Šiame modulyje yra trijų skirtingų tipų iteratoriai.
- Begaliniai iteratoriai
- Kombinatoriniai iteratoriai
- Iteratorių nutraukimas
Begaliniai iteratoriai
Begaliniai iteratoriai gali paleisti kilpą be galo. Šios funkcijos dažniau paleidžiamos naudojant a
už kilpą. Yra trys begaliniai iteratoriai.1. skaičiuoti (pradžia, žingsnis)
The skaiciuoti () funkcijai reikalingi du parametrai: the pradėti ir žingsnis. Ciklas prasideda nuo pradžios reikšmės ir grąžina reikšmes, kurios didėja po žingsnio, o tai yra 1. Apsvarstykite toliau pateiktą pavyzdį: ciklas prasideda nuo 2 ir kiekvieną kartą pridedamas 2. Ciklas nutrūksta, kai reikšmė i tampa 10.
i itertools.count (2,2):
jei i == 10:
pertrauka
Kitas:
spausdinti (i, pabaiga=" ")
Išvestis:
2 4 6 8
2. kartoti (skaičius, kartus iki kartoti)
The kartoti () funkcija priima du parametrus. Pirmasis yra reikšmė, kurią funkcija sukuria pakartotinai. Antrasis parametras yra skaičius, kiek kartų šis skaičius turėtų pasikartoti. Jei nenurodysite antrojo parametro, ciklas veiks be galo.
i itertools.repeat (2,5):
spausdinti (i, pabaiga=" ")
Išvestis:
2 2 2 2 2
3. ciklas (įvestis)
The ciklas () funkcija kartojasi per įvestį ir spausdina atskirus elementus nurodyta tvarka. Kai jis pasiekia įvesties pabaigą, ciklas paleidžiama iš naujo nuo pradžių.
c = 0
var = "12345"
i itertools.cycle (var):
jei c == 12:
pertrauka
Kitas:
c = c + 1
spausdinti (i, pabaiga=" ")
Išvestis:
1 2 3 4 5 1 2 3 4 5 1 2
Kombinatoriniai iteratoriai
Kombinatoriniai iteratoriai teikia funkcijas, atliekančias permutacijas, derinius ir dekarto sandaugas.
1. produktas (įvestis)
The produktas () funkcija apskaičiuoja nurodytos įvesties Dekarto sandaugą. Jis turi kartotinį parametrą, kuris apskaičiuoja iteratoriaus deskartišką sandaugą su savimi. Tai neprivalomas parametras.
masyvas = [1,2,3]
spausdinti (sąrašas (itertools.product (masyvas, pakartojimas=2)))
eilutė = "ABC"
spausdinti (sąrašas (itertools.product (string, "XYZ"))))
Išvestis:
1 pavyzdys [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
2 pavyzdys [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutacijos (įvestis, dydis)
Ši funkcija grąžina visų nurodytos iteracijos permutacijų eilutę. Jis priima du parametrus: kartojamą ir grupės dydį. Jei grupės dydis nenurodytas, jis sudarys tokio pat ilgio grupes, kaip ir pati kartojama.
arr = [1,2,3,4]
spausdinti (sąrašas (itertools.permutations (arr, 2)))
Išvestis:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Susijęs: „Python“ funkcijos, kurias turėtumėte žinoti
3. deriniai (įvestis, ilgis)
The deriniai () funkcija padeda apskaičiuoti nurodyto iteratoriaus derinius. Atminkite, kad ši funkcija palaiko įvesties elementų tvarką. Nors permutacijas apima vertes, kurios skiriasi tik tvarka, deriniai kuria unikalias vertybes.
arr = [1,2,3,4]
spausdinti (sąrašas (itertools.combinations (arr, 3)))
Išvestis:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Iteratorių nutraukimas
Baigiamieji iteratoriai sukuria išvestį pagal įvesties sąlygas. Tai galite geriausiai suprasti iš kai kurių funkcijų pavyzdžių.
1. kaupti (įvestis, operatorius)
The kaupti() funkcija priima du argumentus: kartotinį ir operatorių. Jis sukuria išvestį taikydamas operatorių bendrai sumai ir kiekvienam įvesties elementui paeiliui. Operatorius yra neprivalomas argumentas. Jei jos neišlaikysite, ši funkcija atliks papildymą.
importo operatorius
arr = [1,2,3,4]
spausdinti (sąrašas (itertools.accumulate (arr)))
spausdinti (sąrašas (itertools.accumulate (arr, operator.sub)))
Išvestis:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. žvaigždžių žemėlapis (funkcija, įvestis)
The žvaigždžių žemėlapis () funkcija priima funkciją ir eilučių sąrašą kaip savo argumentus. Jis apskaičiuoja grąžinamas reikšmes, taikydamas funkciją kiekvienai įvesties kortelei. Pateiktame pavyzdyje ši funkcija apskaičiuos didžiausią kiekvienos eilės reikšmę ir grąžins ją masyve.
arr = [(1,2,3), (4,5,6), (7,8,9)]
spausdinti (sąrašas (itertools.starmap (max, arr)))
Išvestis:
[3, 6, 9]
Susijęs: Kaip sukurti ir naudoti eilutes Python
3. filtras klaidingas (funkcija)
The filtras false () funkcija grąžina reikšmes, kurios neatitinka pateiktos funkcijos sąlygos. Žemiau pateiktas kodas pašalina visas nelygines reikšmes.
arr = [1,2,3,4]
spausdinti (sąrašas (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Išvestis:
[2, 4]
Tęskite savo Python kodavimo kelionę
Dabar, kai sužinojote apie Itertools modulį, laikas ištirti kitus Python modulius. „Python“ turi modulių ir bibliotekų, skirtų daugeliui užduočių. Jie apima pažangias koncepcijas, tokias kaip Furjė transformacija ir AI/ML programos.
Kai kurie moduliai yra sudėtingesni nei kiti ir užtruks ilgiau. „Tkinter“ modulis leidžia kurti visas GUI programas „Python“.
Patobulinkite savo Python Tkinter įgūdžius naudodami šį pradedančiųjų projektą.
Skaitykite toliau
- Programavimas
- Programavimas
- Python
Unnati yra entuziastingas „full stack“ kūrėjas. Jai patinka kurti projektus naudodama įvairias programavimo kalbas. Laisvalaikiu ji mėgsta groti gitara ir yra maisto gaminimo entuziastė.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia