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.
- Iteradores infinitos
- Iteradores combinatórios
- Terminando iteradores
Iteradores infinitos
Iteradores infinitos podem executar um loop infinitamente. Essas funções são executadas com mais frequência usando um
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.
Melhore suas habilidades em Python Tkinter com este projeto para iniciantes.
Leia a seguir
- Programação
- Programação
- Pitão
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.
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