“itertools” em Python: explicação e aplicação

O módulo ferramentas iterativas em Python faz parte da biblioteca padrão e contém várias funções geradoras que são frequentemente usadas na programação diária por desenvolvedores Python. Com itertools é possível gerar operações como combinações ou permutações de elementos de uma lista. Ele fornece uma variedade de funções, como acumulação, cadeia, combinações, permutações, produto e cadeia, que podem ser usadas para realizar operações iterativas complexas de maneira fácil e eficiente. O módulo itertools é muito flexível e oferece muitas opções para otimizar e simplificar a programação diária. Neste artigo, explicaremos detalhadamente os diferentes recursos do itertools e forneceremos exemplos de como usá-los.

Principais insights

  • O módulo Python itertools contém funções úteis para gerar combinações, permutações e outras operações iterativas.
  • Com itertools, cálculos complexos podem ser realizados de forma fácil e eficiente.
  • O módulo oferece muitas opções para otimizar e simplificar a programação diária.
  • Forneceremos explicações detalhadas e exemplos de como usar as várias funções do itertools.
  • Aprender e compreender itertools é muito importante para desenvolvedores Python.

A função acumular(iterável, (func))

A função acumular do módulo itertools cria um iterador que itera pelas somas parciais dos elementos de um iterável. Por padrão, as somas parciais são calculadas por adição, mas também existe a opção de usar uma função personalizada. Ao usar o acúmulo, cálculos complexos, como a soma cumulativa de uma série de números, podem ser realizados de maneira fácil e eficiente.

Para usar acumular, basta especificar o iterável desejado como primeiro parâmetro. Se quiser usar uma função personalizada, você pode passá-la como um segundo parâmetro opcional. Esta função deve aceitar dois argumentos e retornar o resultado desejado.

Ao usar acumular, o iterador é usado para gerar as somas parciais passo a passo. Você pode então recuperar os resultados em um loop ou salvá-los em uma lista para uso posterior. Aqui está um exemplo simples:

Exemplo

import itertools

numbers = (1, 2, 3, 4, 5)
partial_sums = itertools.accumulate(numbers)

for num in partial_sums:
    print(num)

Neste exemplo, a função acumular é usada para gerar as somas parciais dos números de 1 a 5. A saída do código acima seria:

  1. 1
  2. 3
  3. 6
  4. 10
  5. 15

Com o acumular você pode realizar vários tipos de cálculos como calcular a soma acumulada, encontrar o máximo ou mínimo, realizar multiplicações e muito mais. É um recurso poderoso que ajuda você a realizar operações complexas de maneira mais fácil.

A função chain((*iterables))

A função chain do módulo itertools cria um iterador que percorre os elementos de vários objetos iteráveis, um após o outro. É usado para encadear os elementos desses objetos em uma única sequência.

A função chain é particularmente útil quando você está trabalhando com listas diferentes ou objetos iteráveis ​​e deseja mesclá-los em uma única lista. Ele permite conectar os elementos perfeitamente, sem alterar a estrutura ou a ordem dos objetos originais.

Exemplo:

Suponha que você tenha duas listas: (1, 2, 3) e (4, 5, 6). Com o chainfunção permite concatenar essas duas listas em uma única lista:

import itertools

list1 = (1, 2, 3)
list2 = (4, 5, 6)

result = list(itertools.chain(list1, list2))
print(result)
# Ausgabe: (1, 2, 3, 4, 5, 6)

Conforme mostrado no exemplo acima, os elementos de ambas as listas são concatenados em uma única lista na ordem das listas originais.

Vantagens da função de cadeia:

  • Permite encadear elementos de diferentes objetos iteráveis
  • Mantém a ordem e a estrutura dos objetos originais
  • Maneira simples e eficiente de mesclar várias listas em uma

A função chain é uma ferramenta prática para conectar objetos iteráveis ​​e resolver tarefas complexas com listas e sequências. Ele economiza tempo e código, permitindo concatenar e combinar listas e sequências sem esforço.

As combinações de funções(iterável, r)

A função combinations do módulo itertools cria um iterador que itera através de todas as combinações de elementos r dos elementos de um objeto iterável. Uma combinação é uma seleção de r elementos de um conjunto onde a ordem dos elementos não importa. Esta função é particularmente útil quando queremos encontrar todas as combinações possíveis de um determinado conjunto de elementos.

Sobre a função combinations Para usá-lo, precisamos especificar um objeto iterável e o comprimento desejado da combinação. O iterador então retorna todas as combinações possíveis, usando cada elemento apenas uma vez. Aqui está um exemplo para ilustrar isso:

exemplo de combinações de itertools
  1. Importe o módulo itertools:
  2. import itertools
  3. Defina uma lista de itens:
  4. elements = ('A', 'B', 'C')
  5. Chame a função combinations e especifique o objeto iterável e o comprimento da combinação:
  6. combinations = itertools.combinations(elements, 2)
  7. Use um loop para gerar as combinações:
  8. for combination in combinations:
        print(combination)

Neste exemplo obtemos a seguinte saída:

('A', 'B')
('A', 'C')
('B', 'C')

Como você pode ver, todas as combinações possíveis de 2 itens estavam na lista ('A', 'B', 'C') gerado. Observe que a ordem dos elementos dentro de cada combinação não importa, portanto combinações como ('A', 'B') e ('B', 'A') são consideradas iguais.

A função permutações(iterável, r)


permutações de itertools

As permutações de função do módulo itertools em Python cria um iterador que itera através de todas as permutações de elementos r dos elementos de um objeto iterável. Uma permutação é um arranjo de r elementos de um conjunto em que a ordem dos elementos é importante. Com a função de permutações você pode gerar todos os arranjos possíveis de r elementos e utilizá-los de forma eficiente em seu programa.

Para usar a função de permutações, especifique um objeto iterável e o comprimento desejado de permutações (r). O iterador então percorre todas as combinações possíveis e as gera uma por uma. Aqui está um exemplo para ilustrar como funciona:

  • from itertools import permutations
  • numbers = (1, 2, 3)
  • perms = permutations(numbers, 2)
  • for perm in perms:
  • print(perm)

Neste exemplo, todas as permutações de dois elementos da lista (1, 2, 3) são criadas e impressas. O resultado é assim:

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)

A função de permutações é particularmente útil quando você precisa gerar todos os arranjos possíveis de elementos, por exemplo, para testar combinações ou resolver problemas de permutação. Ele oferece uma maneira eficiente de implementar essas tarefas em seus programas Python.

A função produto((*iteráveis), repetir)

A função product do módulo itertools é uma ferramenta poderosa para gerar o produto cartesiano dos elementos de múltiplos objetos iteráveis. O produto cartesiano é um conjunto de todos os pares ordenados possíveis, tuplas triplas, etc. que podem ser formados a partir dos elementos dos conjuntos de entrada.

A função product aceita qualquer número de objetos iteráveis ​​como argumentos e também fornece a capacidade de especificar a repetição de um elemento. Isto permite-nos multiplicar o produto cartesiano por si mesmo.

Aqui está um exemplo para ilustrar:


import itertools

numbers = (1, 2, 3)
colors = ('rot', 'grün', 'blau')

result = itertools.product(numbers, colors, repeat=2)

for item in result:
    print(item)

Neste exemplo criamos o produto cartesiano dos números 1, 2 e 3 com as cores vermelho, verde e azul, repetindo cada elemento até 2 vezes. A saída nos mostra todas as combinações possíveis:


(1, 'rot', 1, 'rot')
(1, 'rot', 1, 'grün')
(1, 'rot', 1, 'blau')
(1, 'rot', 2, 'rot')
...

Com a função product Podemos, portanto, gerar facilmente todas as combinações possíveis dos elementos de vários objetos iteráveis ​​e, assim, resolver problemas complexos de forma eficiente.

Perguntas frequentes

O que é o módulo itertools em Python?

O módulo itertools em Python faz parte da biblioteca padrão e contém várias funções geradoras que são frequentemente usadas na programação diária por desenvolvedores Python.

Quais funções o módulo itertools contém?

O módulo itertools contém funções como acumulação, cadeia, combinações, permutações, produto e cadeia, que podem ser usadas para realizar operações iterativas complexas de maneira fácil e eficiente.

O que a função acumular faz?

A função acumular cria um iterador que itera pelas somas parciais dos elementos de um iterável.

O que a função da cadeia faz?

A função de cadeia cria um iterador que percorre sequencialmente os elementos de vários objetos iteráveis ​​e os concatena em uma única sequência.

O que a função de combinações faz?

A função de combinações cria um iterador que itera por todas as combinações de elementos r dos elementos de um objeto iterável.

O que as permutações de funções fazem?

A função de permutações cria um iterador que itera por todas as permutações de elementos r dos elementos de um objeto iterável.

O que a função do produto faz?

A função product cria um iterador que itera através do produto cartesiano dos elementos de múltiplos objetos iteráveis.

Referências de origem

Programação

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.