A biblioteca do Python possui muitos exemplos de iteráveis. Vou aqui abordar alguns dos iteráveis mais interessantes que se podem encontrar na biblioteca do Python.


for correspondencia in re.finditer(pattern, string):
    # um por cada correspondência encontrada do pattern na string

for root, dirs, files in os.walk('/qualquer/pasta'):
    # um por cada sub-directório

for num in itertools.count():
    # um por cada inteiro ... até ao infinito e mais além!

from itertools import chain, repeat, cycle
seq = chain(repeat(17, 3), cycle(range(4)))
for num in seq:
    # 17, 17, 17, 0, 1, 2, 3, 0, 1, 2, 3,  0, 1, 2, 3, ...



O módulo re procura por um determinado padrão (pattern) numa string. A função finditer itera sobre todas as correspondências encontradas de um dado padrão numa dada string. Esta é uma boa forma de tratar as correspondências de padrões encontradas em strings.

No módulo os a função walk itera sobre todos os sub-directórios. Este iterador itera de uma forma linear sobre uma estrutura do tipo árvore.

O módulo itertools possui várias funções que facilitam a vida aos programadores quando trabalham com iterações. A função count() produz um iterador que devolve inteiros até ao infinito.

O módulo itertools possui também várias funções para produzir vários tipos de combinações com as iterações. A função chain(), por exemplo, pega num conjunto de sequências e encadeia-as numa única sequência. No exemplo em cima, a primeira sequência é repeat(17, 3) que se limita a produzir o número 17 três vezes. A função cycle() pega numa sequência e devolve os seus valores indefinidamente em ciclo. No exemplo acima teríamos assim um resultado infinito: 17, 17, 17, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ...

Estes são apenas alguns exemplos das várias possibilidades na utilização de iteráveis sem a necessidade de recorrer a índices.


Como devem imaginar este assunto não se extingue por aqui, por isso em breve terei mais posts sobre ciclos e iteráveis.


Este post faz parte da série de posts sobre Ciclos e Interáveis em Python:
  1. Ciclos em Python, o básico
  2. Ciclos em Python e os Iteráveis
  3. Ciclos em Python, mais exemplos de Iteráveis (post actual)
  4. Ciclos em Python, uso de Iteráveis fora dos ciclos
  5. Ciclos em Python, problemas comuns e os índices
  6. Ciclos em Python, iterar sobre duas listas
  7. Ciclos em Python, iteração personalizada
  8. Ciclos em Python, Generators - parte 1
  9. Ciclos em Python, Generators - parte 2
  10. Ciclos em Python, Generators - parte 3
  11. Ciclos em Python, operações de baixo nível
  12. Ciclos em Python, como tornar os nossos objectos em Iteráveis
  13. Ciclos em Python, conclusão


A inspiração para este post veio daqui.