Iteratorfuncties in Python | Set 2 (islice (), sterrenkaart (), tee () ..)

| |

1. islice (itereerbaar, start, stop, stap) : — deze iterator drukt selectief de waarden af ​​waarnaar wordt verwezen in zijn itereerbare container doorgegeven als argument. Deze iterator neemt 4 argumenten, een iteratieve container, startpositie, eindpositie en stride.

2. sterrenkaart (func., Lijst met tupels) : — Deze iterator neemt een functie en een lijst met tupels als argument en retourneert een waarde volgens de functie van elke tupel in de lijst.

# Python-code om te demonstreren hoe het werkt
# islice () en starmap ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# initialisatielijst

li = [ 2 , 4 , 5 , 7 , 8 , 10 , 20 ]


# initialiseer de lijst met tuples

li1 = [( 1 , 10 , 5 ), ( 8 , 4 , 1 ), ( 5 , 4 , 9 ), ( 11 , 10 , 1 )]


# met behulp van islice ( ) om de lijst op te delen volgens ... nodig
# begint met afdrukken van 2e index naar 6e overslaan 2

print ( "De gesegmenteerde lijstwaarden zijn:" , end = "")

print ( lijst (itertools.islice (li, 1 , 6 , 2 ) ))


# gebruik starmap () om een ​​waarde acc te selecteren. functie
# selecteert het minimum van alle tuple-waarden

print ( "De waarden volgens functie zijn:" , end = "")

print ( lijst (itertools.starmap ( min , li1)))

Uitvoer:

 De gesegmenteerde lijstwaarden zijn: [4, 7, 10] De waarden vlg. om te functioneren zijn: [1, 1, 4, 1] 

3. takewhile (func, itereerbaar) : — deze iterator is het tegenovergestelde van drop while (), het drukt de waarden af totdat de functie de eerste keer false retourneert.

4. tee (iterator, telling) : — Deze iterator splitst de container in meerdere iterators die in het argument worden genoemd.

# Python-code om te demonstreren hoe het werkt
# takewhile () en tee ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# initialisatielijst

li = [ 2 , 4 , 6 , 7 , 8 , 10 , 20 ]


# sla de lijst op in een iterator

iti = iter (li)


# met takewhile () om waarden af ​​te drukken totdat de voorwaarde onwaar is.

print ( " De lijstwaarden ​​tot 1e valse waarde zijn: " , end = " ")

print ( lijst (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# met tee ( ) om iterators weer te geven
# maakt een lijst van 3 iterators die dezelfde waarde hebben.

it = itertools.tee (iti , 3 )


# iteratorwaarden afdrukken

print ( "De iterators zijn:" )

voor i in bereik ( 0 , 3 ): < /p>

print ( lijst (it [i]))

Uitvoer:

De lijstwaarden tot de 1e valse waarde zijn: [2, 4, 6] De iterators zijn: [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7 , 8, 10, 20]

5. zip_longest (iterable1, iterable2, fillval.) : &# 8212; deze iterator drukt de waarden van de iterables één voor één af . Als een van de iteraties volledig wordt afgedrukt, worden de resterende waarden gevuld met de waarden die zijn toegewezen aan vulwaarde .

# Python-code om te demonstreren hoe het werkt
# zip_longest ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# met zip_longest () om de twee iteraties te combineren.

print ( "De gecombineerde waarden ​​van iterables is:" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , fillvalue = ’_’ )))

Uitvoer:

 De gecombineerde waarden van iterables is: (’G’,’ e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’ G’, ’e’) (’ e’, ’k’) (’ s’, ’_’ ) 

Combinatorische iterators

1. product (iter1, iter2) : — Deze iterator drukt het Cartesiaanse product af van de twee itereerbare containers die als argumenten zijn doorgegeven.

2. permutaties (iter, group_size) : — deze iterator print alle mogelijke permutaties van alle elementen van de iterabele. De grootte van elke permutatiegroep wordt bepaald door het argument group_size .

# Python-democode
# product () en permutatie ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# product () gebruiken om een ​​Cartesiaans product af te drukken

print ( "Het cartesiaanse product van de containers is:" )

print ( lijst (itertools.product ( ’AB’ , ’ 12’ )))


# gebruik permutaties om alle mogelijke permutaties te berekenen

print ( "Alle permutaties van de gegeven container zijn:" )

print ( lijst (itertools.permutaties ( ’GfG’ , 2 )))

Uitgang:

 Het cartesiaanse product van de containers is: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Alle permutaties van de gegeven container is: [(’ G’, ’f’), (’ G ’, ’G’), (’ f’, ’G’), (’ f’, ’G’), (’ G’, ’G’), (’ G’, ’f’)] 

3. combinaties (iterable, group_size) : — deze iterator print alle mogelijke combinaties (geen vervanging) van de container doorgegeven in argumenten in de gespecificeerde groepsgrootte in gesorteerde volgorde.

4. combinaties_with_replacement (iterable, group_size) : — deze iterator print alle mogelijke combinaties (met vervanging) van de container doorgegeven in argumenten in de gespecificeerde groepsgrootte in gesorteerde volgorde.

# Python-code om te demonstreren hoe het werkt
# combinatie () en combinatie_with_replacement ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# gebruik combinaties () om elke combinatie af te drukken
# (zonder vervangingen)

print ( "Alle combinaties van containers in gesorteerde volgorde (zonder vervanging) zijn: " )

print ( lijst (itertools.combinations ( ’1234’ , 2 )))


# gebruik combinatie_with_replacement () om elke combinatie af te drukken
# met vervanging

print ( "Alle combinaties van containers in gesorteerde volgorde (met vervanging ) is:" )

print ( lijst (itertools.combinations_with_replacement ( ’GfG’ , 2 )))

Uitvoer:

 Alle combinaties van containers in gesorteerde volgorde (zonder vervanging) is: [(’ 1’,’ 2 ’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4 ’)] Alle combinaties van containers in gesorteerde volgorde (met vervanging) zijn: [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Oneindig iterators

1. tel (start, stap) : — Deze iterator begint met afdrukken bij "start" en drukt voor onbepaalde tijd af . Als stappen worden vermeld, worden nummers overgeslagen, anders is stap 1 standaard.

Voorbeeld:

 iterator.count (5,2) prints - 5,7,9,11 .. . oneindig 

2. lus (itereerbaar) : — deze iterator print alle waarden in volgorde van de doorgegeven container. Het hervat het afdrukken weer vanaf het begin wanneer alle items zijn gefietst .

Voorbeeld:

 iterator.cycle ([1,2,3,4]) prints - 1,2,3,4,1,2,3,4,1 . .. oneindig 

3. herhaal (val, num) : — Deze iterator drukt herhaaldelijk de doorgegeven waarde een oneindig aantal keren af. Als er een aantal wordt genoemd, zijn ze tot dat aantal.

# Python-code om te demonstreren hoe het werkt
# herhaal ()


# import & quot; itertools & quot; voor iteratorbewerkingen

import itertools


# gebruik repeat () om het nummer herhaaldelijk af te drukken

print ( "De cijfers herhaaldelijk afdrukken:" )

print ( lijst (itertools.repeat ( 25 , 4 )) )

Uitvoer:

 Afdrukken van de nummers herhaaldelijk: [25, 25, 25, 25] 

Dit artikel met dank aan Manjeet Singh . Als u als Python.Engineering bent en graag wilt bijdragen, kunt u ook een artikel schrijven met Contribut.python.engineering of door een artikel te plaatsen bijdragen @ python.engineering. Zie mijn artikel dat op de Python.Engineering-homepage verschijnt en help andere nerds.

Plaats opmerkingen als je iets verkeerd vindt of als je meer informatie wilt delen over het hierboven besproken onderwerp.