Itertools är en av de mest användbara modulerna Python tillhandahåller. Dess funktioner gör det enkelt att arbeta med listor och arrayer. Oavsett om du behöver alla permutationer av värdena i en array, eller om du vill gruppera tecken från en sträng, kan Itertools hjälpa.
Att skriva koden för sådana vanliga fall kan vara tråkigt och felbenäget. Därför har utvecklare byggt bibliotek för att göra allt detta åt dig. Du kan använda dessa funktioner genom att importera Itertools. I den här artikeln kommer du att lära dig om Itertools-modulen i Python och dess funktioner.
Den officiella Pytonorm dokumentationen förklarar att Itertools innehåller kod för att bygga iteratorer. Denna modul ger snabba och effektiva funktioner för att arbeta med listor och arrayer.
Innan du använder den här modulen måste du importera den med följande syntax:
importera itertools
Det finns tre olika typer av iteratorer i denna modul.
- Oändliga iteratorer
- Kombinatoriska iteratorer
- Avslutande iteratorer
Oändliga iteratorer
Oändliga iteratorer kan köra en loop oändligt. Dessa funktioner körs oftare med en för slinga. Det finns tre oändliga iteratorer.
1. räkna (start, steg)
De räkna() funktionen tar två parametrar: den Start och den steg. Slingan börjar från startvärdet och returnerar värden som ökar stegvis, vilket som standard är 1. Tänk på exemplet nedan: slingan börjar från 2 och lägger till 2 varje gång. Slingan bryts när värdet på i blir 10.
för i i itertools.count (2,2):
om jag == 10:
ha sönder
annan:
print (i, end=" ")
Produktion:
2 4 6 8
2. upprepa (antal, gånger att upprepa)
De upprepa() funktionen accepterar två parametrar. Det första är ett värde som funktionen producerar upprepade gånger. Den andra parametern är antalet gånger numret ska upprepas. Om du inte anger den andra parametern kommer loopen att köras oändligt.
för i i itertools.repeat (2,5):
print (i, end=" ")
Produktion:
2 2 2 2 2
3. cykel (ingång)
De cykel() funktion itererar genom inmatningen och skriver ut enskilda objekt i en given ordning. När den når slutet av sin inmatning, cykel startar om från början.
c = 0
var = "12345"
för i i itertools.cycle (var):
om c == 12:
ha sönder
annan:
c = c + 1
print (i, end=" ")
Produktion:
1 2 3 4 5 1 2 3 4 5 1 2
Kombinatoriska iteratorer
De kombinatoriska iteratorerna tillhandahåller funktioner för att utföra permutationer, kombinationer och kartesiska produkter.
1. produkt (ingång)
De produkt() funktion beräknar den kartesiska produkten av den specificerade ingången. Den har en upprepningsparameter som beräknar den kartesiska produkten av en iterator med sig själv. Det är en valfri parameter.
array = [1,2,3]
print (lista (itertools.product (array, repeat=2)))
string = "ABC"
print (lista (itertools.product (sträng, "XYZ")))
Produktion:
Exempel 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Exempel 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutationer (ingång, storlek)
Denna funktion returnerar en tupel av alla permutationer för den givna iterable. Den accepterar två parametrar: den iterbara och gruppstorleken. Om gruppstorleken inte anges kommer den att bilda grupper av samma längd som själva iterabeln.
arr = [1,2,3,4]
print (lista (itertools.permutations (arr, 2)))
Produktion:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Relaterad: Python-funktioner du bör känna till
3. kombinationer (ingång, längd)
De kombinationer() funktionen hjälper till att beräkna kombinationerna av den givna iteratorn. Observera att den här funktionen behåller artikelordningen för dess inmatning. Medan permutationer inkluderar värden som endast skiljer sig efter ordning, kombinationer producerar unika värden.
arr = [1,2,3,4]
print (lista (itertools.combinations (arr, 3)))
Produktion:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Avslutande iteratorer
Avslutande iteratorer producerar utdata baserat på de villkor som ges för indata. Du kan förstå det bäst från några exempelfunktioner.
1. ackumulera (ingång, operatör)
De ackumulera() funktion accepterar två argument: det iterbara och en operator. Den producerar utdata genom att tillämpa operatören på en kumulativ summa och varje ingångselement i tur och ordning. Operatören är ett valfritt argument. Om du inte klarar det kommer den här funktionen att utföra tillägg.
importoperatör
arr = [1,2,3,4]
print (lista (itertools.accumulate (arr)))
print (lista (itertools.accumulate (arr, operator.sub)))
Produktion:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. stjärnkarta (funktion, ingång)
De stjärnkarta() function accepterar en funktion och tupellista som sina argument. Den beräknar returvärden genom att tillämpa funktionen på varje tupel i ingången. I exemplet kommer denna funktion att beräkna det maximala värdet för varje tupel och returnera det i en array.
arr = [(1,2,3), (4,5,6), (7,8,9)]
print (lista (itertools.starmap (max, arr)))
Produktion:
[3, 6, 9]
Relaterad: Hur man skapar och använder Tuples i Python
3. filterfalse (funktion)
De filterfalse() funktion returnerar värden som inte uppfyller villkoret i den godkända funktionen. Koden nedan tar bort alla udda värden.
arr = [1,2,3,4]
print (lista (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Produktion:
[2, 4]
Fortsätt din Python-kodningsresa
Nu när du har lärt dig om Itertools-modulen är det dags att utforska andra Python-moduler. Python har moduler och bibliotek för en mängd uppgifter. De inkluderar avancerade koncept som Fourier-transformation och AI/ML-applikationer.
Vissa moduler är mer komplicerade än andra och kommer att ta längre tid att lära sig. Tkinter-modulen gör att du kan bygga kompletta GUI-applikationer i Python.
Förbättra dina Python Tkinter-färdigheter med detta nybörjarprojekt.
Läs Nästa
- Programmering
- Programmering
- Pytonorm
Unnati är en entusiastisk fullstack-utvecklare. Hon älskar att bygga projekt med hjälp av olika programmeringsspråk. På fritiden älskar hon att spela gitarr och är en matlagningsentusiast.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera