Sobes.tech
Junior

Que funções do módulo itertools conheces?

sobes.tech IA

Resposta da IA

  • count(start=0, step=1): cria um iterador infinito que devolve números, começando em start com um passo de step.
  • cycle(iterable): cria um iterador infinito que repete ciclicamente os elementos de iterable.
  • repeat(elem, n=None): cria um iterador que repete elem n vezes. Se n não for especificado, repete indefinidamente.
  • chain(*iterables): combina vários objetos iteráveis num único.
  • compress(data, selectors): filtra os elementos de data de acordo com os valores verdadeiros em selectors.
  • dropwhile(predicate, iterable): ignora os elementos iniciais de iterable enquanto predicate(item) for verdadeiro, depois devolve todos os restantes.
  • filterfalse(predicate, iterable): devolve os elementos de iterable para os quais predicate(item) é falso.
  • groupby(iterable, key=None): agrupa elementos consecutivos de iterable por chave, devolvendo pares (key, group).
  • islice(iterable, start, stop, step=1): devolve uma "fatia" de iterable como um gerador.
  • pairwise(iterable): devolve pares consecutivos de elementos de iterable.
from itertools import pairwise

for a, b in pairwise([1, 2, 3, 4]):
    print(f"({a}, {b})") # Vai imprimir (1, 2), (2, 3), (3, 4)
  • starmap(function, iterable): chama function com argumentos retirados dos elementos de iterable.
  • takewhile(predicate, iterable): devolve elementos de iterable enquanto predicate(item) for verdadeiro.
  • tee(iterable, n=2): devolve uma tupla de n iteradores independentes criados a partir de um único iterable.
  • zip_longest(*iterables, fillvalue=None): combina vários objetos iteráveis, preenchendo com fillvalue os valores em falta.
  • combinations(iterable, r): devolve combinações de comprimento r dos elementos de iterable sem repetição e sem considerar a ordem.
  • combinations_with_replacement(iterable, r): devolve combinações de comprimento r com repetição, sem considerar a ordem.
  • permutations(iterable, r=None): devolve permutações de comprimento r dos elementos de iterable sem repetição e considerando a ordem.
  • product(*iterables, repeat=1): devolve o produto cartesiano dos objetos iteráveis de entrada.
from itertools import product

for item in product('AB', range(2)):
    print(item)
# Vai imprimir ('A', 0), ('A', 1), ('B', 0), ('B', 1)