Introdução
Itertools é um módulo Python poderoso que fornece um conjunto de ferramentas rápidas, eficientes em termos de memória e flexíveis para trabalhar com iteradores. Essas ferramentas são úteis para resolver uma variedade de problemas combinatórios e podem economizar tempo e esforço ao lidar com grandes conjuntos de dados. Neste tutorial, exploraremos algumas funções-chave do módulo Itertools e forneceremos exemplos para ajudá-lo a entender seu uso.
Começando com Itertools
Para começar, você precisará importar o módulo Itertools. Ele está incluído na Biblioteca Padrão do Python, então você não precisa instalar nenhum pacote adicional.
import itertools
Funções Básicas do Itertools
chain
A função chain é usada para combinar múltiplos iteráveis em um único iterável. Ela recebe qualquer número de iteráveis como argumentos e retorna um único iterador que produz elementos dos iteráveis de entrada em sequência.
Exemplo:
Crie um projeto chamado chain.py no WebIDE e insira o seguinte conteúdo.
import itertools
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
## Chain the two lists together
result = itertools.chain(list1, list2)
## Print the elements of the chained iterator
for item in result:
print(item)
Saída:
Insira python chain.py no Terminal. Em seguida, verifique a saída.
1
2
3
a
b
c
cycle
A função cycle é usada para criar um iterador que percorre os elementos de um iterável de entrada indefinidamente.
Exemplo:
Crie um projeto chamado cycle.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Create a cycle iterator from a list
cycle_iterator = itertools.cycle([1, 2, 3])
## Print the first 10 elements of the cycle iterator
for i, item in enumerate(cycle_iterator):
if i >= 10:
break
print(item)
Saída:
Use o seguinte comando para executar o script.
python cycle.py
1
2
3
1
2
3
1
2
3
1
count
A função count cria um iterador que gera inteiros consecutivos indefinidamente, começando de um número especificado opcionalmente.
Exemplo:
Crie um projeto chamado count.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Create a count iterator starting from 5
count_iterator = itertools.count(5)
## Print the first 10 elements of the count iterator
for i, item in enumerate(count_iterator):
if i >= 10:
break
print(item)
Saída:
Use o seguinte comando para executar o script.
python count.py
5
6
7
8
9
10
11
12
13
14
Funções de Itertools para Combinatória
product
A função product calcula o produto cartesiano de iteráveis de entrada. Ela recebe qualquer número de iteráveis como argumentos e um parâmetro opcional repeat, que especifica o número de repetições de cada iterável de entrada.
Exemplo:
Crie um projeto chamado product.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Compute the Cartesian product of two lists
list1 = [1, 2]
list2 = ['a', 'b']
product_iterator = itertools.product(list1, list2)
## Print the elements of the product iterator
for item in product_iterator:
print(item)
Saída:
Use o seguinte comando para executar o script.
python product.py
(1, 'a')
(1, 'b')
(2, 'a')
(2, 'b')
permutations
A função permutations gera todas as permutações ordenadas possíveis de elementos de um iterável de entrada. Ela recebe um iterável e um inteiro opcional r como argumentos, especificando o comprimento das permutações.
Exemplo:
Crie um projeto chamado permutations.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Generate all permutations of length 2 from a list
list1 = [1, 2, 3]
permutations_iterator = itertools.permutations(list1, 2)
## Print the elements of the permutations iterator
for item in permutations_iterator:
print(item)
Saída:
Use o seguinte comando para executar o script.
python permutations.py
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
combinations
A função combinations gera todas as combinações não ordenadas possíveis de elementos de um iterável de entrada. Ela recebe um iterável e um inteiro r como argumentos, especificando o comprimento das combinações.
Exemplo:
Crie um projeto chamado combinations.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Generate all combinations of length 2 from a list
list1 = [1, 2, 3]
combinations_iterator = itertools.combinations(list1, 2)
## Print the elements of the combinations iterator
for item in combinations_iterator:
print(item)
Saída:
Use o seguinte comando para executar o script.
python combinations.py
(1, 2)
(1, 3)
(2, 3)
combinations_with_replacement
A função combinations_with_replacement gera todas as combinações não ordenadas possíveis de elementos de um iterável de entrada, permitindo elementos repetidos. Ela recebe um iterável e um inteiro r como argumentos, especificando o comprimento das combinações.
Exemplo:
Crie um projeto chamado cr.py no WebIDE e insira o seguinte conteúdo.
import itertools
## Generate all combinations with replacement of length 2 from a list
list1 = [1, 2, 3]
combinations_iterator = itertools.combinations_with_replacement(list1, 2)
## Print the elements of the combinations_with_replacement iterator
for item in combinations_iterator:
print(item)
Saída:
Use o seguinte comando para executar o script.
python cr.py
(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3)
Resumo
Neste tutorial, cobrimos os fundamentos do módulo Itertools do Python e exploramos algumas de suas principais funções. O Itertools fornece um conjunto de ferramentas poderosas e eficientes em termos de memória para trabalhar com iteradores, que podem ajudá-lo a resolver vários problemas combinatórios com facilidade. Continue praticando e explorando o módulo para descobrir mais de suas capacidades e aprimorar suas habilidades de programação em Python.



