Details
A instrução `for` do Python parece mais limitada que o `for` da linguagem C, mas por baixo do capô Python usa o poderoso padrão de projetos "Iterator", que fornece uma interface padrão para qualquer código que precise percorrer os itens de uma coleção. Isso acontece não apenas na instrução `for`, mas também em construções como compreensões de lista/dict/set, expressões geradoras, e desempacotamento em tuplas de variáveis.
Nessa palestra veremos como os iteradores funcionam por baixo do capô, qual sua relação com objetos iteráveis, e porque `enumerate` e `zip` são complementos importantes para o laço `for`. Entenderemos em detalhe a lógica do `zip` estudando uma variante escrita em Python, com testes automatizados.
Teremos uma visão panorâmica dos poderosos iteradores prontos para usar incluídos na biblioteca padrõo de Python, e finalmente veremos quando não usar iteradores.