Fonctions d`itérateur en Python | Set 2 (islice(), starmap(), tee() ..)

| |

1. islice (itérable, start, stop, step)  : — cet itérateur imprime sélectivement les valeurs référencées dans son conteneur itérable passé en argument. Cet itérateur prend 4 arguments, un conteneur itératif, une position de départ, une position de fin et une foulée.

2. starmap (fonc., liste de tuples)  : — Cet itérateur prend une fonction et une liste de tuples comme argument et renvoie une valeur selon la fonction de chaque tuple de la liste.

# Code Python pour montrer comment cela fonctionne
# islice () et starmap ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# liste d’initialisation

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


# initialise la liste des tuples

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


# en utilisant islice ( ) pour découper la liste selon ... besoin
# commence l’impression du 2ème index au 6ème saut 2

print ( "Les valeurs de la liste découpée en tranches sont :" , end = "")

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


# utilisation de starmap () pour sélectionner une valeur selon. function
# sélectionne le minimum de toutes les valeurs de tuple

print ( "Les valeurs selon la fonction sont :" , fin = "")

imprimer ( liste (itertools.starmap ( min , li1)))

Sortie :

 Les valeurs de la liste découpée en tranches sont : [4, 7, 10] Les valeurs acc. pour fonctionner sont : [1, 1, 4, 1] 

3. takewhile (func, iterable) : — cet itérateur est l’opposé de drop while(), il imprime les valeurs jusqu’à ce que la fonction renvoie false la première fois.

4. tee (itérateur, compte) : — Cet itérateur divise le conteneur en plusieurs itérateurs mentionnés dans l’argument.

# code Python pour montrer comment cela fonctionne
# takewhile () et tee ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# liste d’initialisation

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


# enregistrer la liste dans un itérateur

iti = iter (li)


# utilisation takewhile() pour imprimer des valeurs jusqu’à ce que la condition soit fausse.

print ( " La liste des valeurs ​​jusqu’à la 1ère fausse valeur sont : " , end = " ")

imprimer ( liste (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# en utilisant tee ( ) pour lister les itérateurs
# fait une liste de 3 itérateurs qui ont la même valeur.

it = itertools.tee (iti , 3 )


# impression des valeurs de l’itérateur

print ( "Les itérateurs sont :" )

pour i dans range ( 0 , 3 ) : < /p>

print ( list (it [i]))

Sortie :

Les valeurs de la liste jusqu’à la 1ère fausse valeur sont : [2, 4, 6] Les itérateurs sont : [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 ; cet itérateur imprime les valeurs des itérables une à la fois. Si l’une des itérations est imprimée complètement, les valeurs restantes sont remplies avec les valeurs attribuées à fillvalue .

# Code Python pour montrer comment cela fonctionne
# zip_longest ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# utilisant zip_longest() pour combiner les deux itérations.

print ( "Les valeurs combinées ​​des itérables est :" )

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

Sortie :

 Les valeurs combinées des itérables sont : (’G’,’ e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’ G’, ’e’) (’ e’, ’k’) (’ s’, ’_’ ) 

Itérateurs combinatoires

1. produit (iter1, iter2)  : — Cet itérateur imprime le produit cartésien des deux conteneurs itérables passés en arguments.

2. permutations (iter, group_size)  : — cet itérateur imprime toutes les permutations possibles de tous les éléments de l’itérable. La taille de chaque groupe de permutation est déterminée par l’argument group_size .

# code de démonstration Python
# produit () et permutation ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# utiliser product() pour imprimer un produit cartésien

print ( "Le produit cartésien des conteneurs est :" )

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


# utilise des permutations pour calculer toutes les permutations possibles

print ( "Toutes les permutations du conteneur donné sont :" < classe de code = "plain">)

imprimer ( liste (itertools.permutations ( ’GfG’ , 2 )))

Sortie :

 Le produit cartésien des conteneurs est : [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Toutes les permutations du conteneur donné sont : [(’ G’, ’f’), (’ G ’, ’G’), (’ f’, ’G’), (’ f’, ’G’), (’ G’, ’G’), (’ G’, ’f’)] 

3. combinaisons (itérable, group_size) : — cet itérateur imprime toutes les combinaisons possibles (pas de remplacement) du conteneur passé en arguments dans la taille de groupe spécifiée dans l’ordre trié.

4. combinations_with_replacement (itérable, group_size) : — cet itérateur imprime toutes les combinaisons possibles (avec remplacement) du conteneur passé en arguments dans la taille de groupe spécifiée dans l’ordre trié.

# code Python pour montrer comment cela fonctionne
# combinaison () et combination_with_replacement ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# utilise des combinaisons () pour imprimer chaque combinaison
# (sans remplacements)

print ( "Toute la combinaison de conteneur dans l’ordre trié (sans remplacement) est :" )

imprimer ( liste (itertools.combinations ( ’1234’ , 2 )))


# utilisant combination_with_replacement () pour imprimer chaque combinaison
# avec remplacement

print ( "Toutes les combinaisons de conteneurs dans l’ordre trié (avec remplacement ) est :" )

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

Sortie :

 Toute la combinaison de conteneurs dans l’ordre trié (sans remplacement) est : [(’ 1’,’ 2 ’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4 ’)] Toute la combinaison de conteneur dans l’ordre trié (avec remplacement) est : [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Infini itérateurs

1. compte (début, pas)  : — Cet itérateur commence l’impression au "début" et imprime indéfiniment . Si des étapes sont mentionnées, les numéros sont ignorés, sinon l’étape est 1 par défaut.

Exemple :

 iterator.count (5,2) imprime - 5,7,9,11 .. . infiniment 

2. boucle (itérable) : — cet itérateur imprime toutes les valeurs dans l’ordre à partir du conteneur passé. Il reprend l’impression depuis le début lorsque tous les éléments sont recyclés .

Exemple :

 iterator.cycle ([1,2,3,4]) imprime - 1,2,3,4,1,2,3,4,1 . .. infiniment 

3. répéter (val, num)  : — Cet itérateur imprime à plusieurs reprises la valeur transmise un nombre infini de fois. Si un nombre est mentionné, ils sont jusqu’à ce nombre.

# Code Python pour montrer comment cela fonctionne
# repeat ()


# import & quot; itertools & quot; pour les opérations d’itération

import itertools


# utilisation de repeat () pour imprimer à plusieurs reprises le nombre

print ( "Imprimer les nombres à plusieurs reprises :" )

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

Sortie :

 Impression du nombres répétés : [25, 25, 25, 25] 

Cet article est une gracieuseté de Manjeet Singh . Si vous êtes Python.Engineering et que vous souhaitez contribuer, vous pouvez également écrire un article en utilisant contribuer.python.engineering ou en publiant un article contribuer @ python.engineering. Voir mon article apparaissant sur la page d’accueil de Python.Engineering et aider d’autres geeks.

Veuillez publier des commentaires si vous trouvez quelque chose de mal ou si vous souhaitez partager plus d’informations sur le sujet abordé ci-dessus.