Itertools é um dos módulos mais úteis que o Python oferece. Suas funções facilitam o trabalho com listas e matrizes. Quer você precise de todas as permutações dos valores em um array ou queira agrupar caracteres de uma string, o Itertools pode ajudar.

Escrever o código para esses casos comuns pode ser entediante e sujeito a erros. Conseqüentemente, os desenvolvedores criaram bibliotecas para fazer tudo isso por você. Você pode usar essas funções importando Itertools. Neste artigo, você aprenderá sobre o módulo Itertools em Python e suas funções.

O oficial Pitão documentação explica que Itertools contém código para construir iteradores. Este módulo fornece funções rápidas e eficientes para trabalhar com listas e arrays.

Antes de usar este módulo, você precisa importá-lo usando a seguinte sintaxe:

importar itertools

Existem três tipos diferentes de iteradores presentes neste módulo.

  1. Iteradores infinitos
  2. Iteradores combinatórios
  3. Terminando iteradores

Iteradores infinitos

Iteradores infinitos podem executar um loop infinitamente. Essas funções são executadas com mais frequência usando um

instagram viewer
para loop. Existem três iteradores infinitos.

1. contar (iniciar, passo)

o contar() função leva dois parâmetros: o começar e a Passo. O loop começa a partir do valor inicial e retorna valores que são incrementados por etapa, cujo padrão é 1. Considere o exemplo abaixo: o loop começa em 2 e adicionará 2 a cada vez. O loop é interrompido quando o valor de eu torna-se 10.

para i em itertools.count (2,2):
se i == 10:
pausa
outro:
imprimir (i, fim = "")

Saída:

2 4 6 8 

2. repetir (número, vezesParaRepetir)

o repetir() função aceita dois parâmetros. O primeiro é um valor que a função produz repetidamente. O segundo parâmetro é o número de vezes que o número deve se repetir. Se você não especificar o segundo parâmetro, o loop será executado infinitamente.

para i em itertools.repetir (2,5):
imprimir (i, fim = "")

Saída:

2 2 2 2 2 

3. ciclo (entrada)

o ciclo() A função itera por meio da entrada e imprime itens individuais em uma determinada ordem. Quando chega ao fim de sua entrada, ciclo reinicia desde o início.

c = 0
var = "12345"
para i em itertools.cycle (var):
se c == 12:
pausa
outro:
c = c + 1
imprimir (i, fim = "")

Saída:

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

Iteradores combinatórios

Os iteradores combinatórios fornecem funções para realizar permutações, combinações e produtos cartesianos.

1. produto (entrada)

o produtos() função calcula o produto cartesiano da entrada especificada. Ele tem um parâmetro de repetição que calcula o produto cartesiano de um iterador consigo mesmo. É um parâmetro opcional.

matriz = [1,2,3]
print (list (itertools.product (array, repeat = 2)))
string = "ABC"
imprimir (list (itertools.product (string, "XYZ")))

Saída:

Exemplo 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Exemplo 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), (' B ',' Z '), (' C ',' X '), (' C ',' Y '), (' C ',' Z ')]

2. permutações (entrada, tamanho)

Esta função retorna uma tupla de todas as permutações do iterável fornecido. Ele aceita dois parâmetros: o iterável e o tamanho do grupo. Se o tamanho do grupo não for especificado, ele formará grupos do mesmo comprimento que o próprio iterável.

arr = [1,2,3,4]
imprimir (lista (itertools.permutations (arr, 2)))

Saída:

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

Relacionado: Funções Python que você deve saber

3. combinações (entrada, comprimento)

o combinações () função ajuda a calcular as combinações de um determinado iterador. Observe que esta função mantém a ordem do item de sua entrada. Enquanto permutações inclui valores que diferem apenas por pedido, combinações produz valores únicos.

arr = [1,2,3,4]
imprimir (lista (itertools.combinations (arr, 3)))

Saída:

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

Terminando iteradores

Os iteradores de terminação produzem saída com base nas condições fornecidas para a entrada. Você pode entendê-lo melhor com algumas funções de exemplo.

1. acumular (entrada, operador)

o acumular() função aceita dois argumentos: o iterável e um operador. Ele produz saída aplicando o operador a um total cumulativo e a cada elemento de entrada por vez. O operador é um argumento opcional. Se você não passar, esta função executará a adição.

operador de importação
arr = [1,2,3,4]
imprimir (list (itertools.accumulate (arr)))
print (list (itertools.accumulate (arr, operator.sub)))

Saída:

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

2. mapa estelar (função, entrada)

o mapa estelar () função aceita uma função e lista de tuplas como seus argumentos. Ele calcula os valores de retorno aplicando a função a cada tupla na entrada. No exemplo dado, esta função calculará o valor máximo de cada tupla e o retornará em uma matriz.

arr = [(1,2,3), (4,5,6), (7,8,9)]
print (list (itertools.starmap (max, arr)))

Saída:

[3, 6, 9]

Relacionado: Como criar e usar tuplas em Python

3. filterfalse (função)

o filterfalse () função retorna valores que não atendem à condição na função passada. O código fornecido a seguir remove todos os valores ímpares.

arr = [1,2,3,4]
print (list (itertools.filterfalse (lambda x: x% 2! = 0, arr)))

Saída:

[2, 4]

Continue sua jornada de codificação Python

Agora que você aprendeu sobre o módulo Itertools, é hora de explorar outros módulos Python. Python possui módulos e bibliotecas para um amplo conjunto de tarefas. Eles incluem conceitos avançados como transformação de Fourier e aplicativos de AI / ML.

Alguns módulos são mais complicados do que outros e levarão mais tempo para serem aprendidos. O módulo Tkinter permite que você crie aplicativos GUI completos em Python.

Como construir uma calculadora no Tkinter

Melhore suas habilidades em Python Tkinter com este projeto para iniciantes.

Leia a seguir

CompartilhadoTweetO email
Tópicos relacionados
  • Programação
  • Programação
  • Pitão
Sobre o autor
Unnati Bamania (11 artigos publicados)

Unnati é um entusiasta desenvolvedor de pilha completa. Ela adora construir projetos usando várias linguagens de programação. Nas horas vagas, adora tocar violão e é uma entusiasta da culinária.

Mais de Unnati Bamania

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever