Articles

Python Cookbook por

Discussão

Usando a tag map com None como oprimeiro argumento é uma sutil variação do padrãomap chamada, o que normalmente leva de uma função como oprimeiro argumento. Como a documentação indica, se o primeiro argumentis None, a função identidade é usada como função através da qual os argumentos são mapeados. Se existirem argumentos de lista múltipla, map devolve uma lista contendo tuplas que contêm os itens correspondentes das listas (por outras palavras, é uma espécie de transposeoperação). Os argumentos da lista podem ser qualquer tipo de sequência, e o resultado é sempre uma lista.

Note que a primeira técnica devolve None forsequences in which there are no more elements. Por conseguinte, o resultado do primeiro ciclo é:

zip permite-lhe percorrer as listas de uma forma semelhante, mas apenas até ao número de elementos da lista mais pequena. Portanto, o resultado da segunda técnica é:

Zip:a1 b1a2 b2

Python 2.0 introduziu lista de compreensões, com uma sintaxe que somefound um pouco estranho:


Este itera através de listab para cada elemento a. Theseelements são colocados em uma tupla (x,y). Nós então iteramos através da lista resultante de múltiplos no mais externo for loop. A saída da terceira técnica, portanto, é bastante diferente:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2