51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
---
|
|
title: Itertools
|
|
localeTitle: Itertools
|
|
---
|
|
Itertools é um módulo python de funções que retorna geradores, objetos que só funcionam quando são iterados. Alguns exemplos de funções itertool incluem, mas não se limitam a: chain (), imap (), product () e compress ().
|
|
|
|
### cadeia()
|
|
|
|
A função chain () toma vários iteradores como argumentos e retorna um único iterador que produz o conteúdo de todos eles como se eles viessem de uma sequência.
|
|
|
|
```py
|
|
import itertools
|
|
list(itertools.chain([1, 2], [3, 4]))
|
|
|
|
# Output
|
|
# [1, 2, 3, 4]
|
|
```
|
|
|
|
### islice ()
|
|
|
|
A função islice () retorna um iterador que retorna itens selecionados do iterador de entrada, por índice. Leva os mesmos argumentos que o operador de fatia para listas: iniciar, parar e passo. Iniciar e parar são opcionais.
|
|
|
|
```py
|
|
import itertools
|
|
list(itertools.islice(count(), 5))
|
|
|
|
# Output
|
|
# [0,1, 2, 3, 4]
|
|
```
|
|
|
|
### izip ()
|
|
|
|
izip () retorna um iterador que combina os elementos de vários iteradores em tuplas. Ele funciona como a função interna zip (), exceto pelo fato de retornar um iterador ao invés de uma lista.
|
|
|
|
```py
|
|
import itertools
|
|
list(izip([1, 2, 3], ['a', 'b', 'c']))
|
|
|
|
# Output
|
|
# [(1, 'a'),(2, 'b'),(3, 'c')]
|
|
```
|
|
|
|
Iteradores combinatórios:
|
|
|
|
Resultados dos Argumentos do Iterador produto () p, q,… \[repeat = 1\] produto cartesiano, equivalente a um loop for aninhado permutações () p \[, r\] tuplas de comprimento r, todas as ordenações possíveis, sem elementos repetidos combinações () p, r tuplas de comprimento r, em ordem de classificação, sem elementos repetidos combinações _com_ tuplas de substituição () p, r r-length, em ordem de classificação, com elementos repetidos produto ('ABCD', repetir = 2) AA AB AC AD BA BB BC BD CA CD CC CD DA DB DC DD permutações ('ABCD', 2).
|
|
|
|
combinações ('ABCD', 2) AB AC DC AD BD CD
|
|
|
|
combinações _com_ substituição ('ABCD', 2) AA AB AC DC BB BC BD CC CD DD
|
|
|
|
Fonte: https://docs.python.org/3/library/itertools.html |