Programação Python (Intermediário) - Prof. MARCO VAZ

MarcoVaz
2,402 views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Compreensão de Listas

Compreensão de Listas (CL) é uma funcionalidade muito poderosa da linguagem Python que possibilita criar uma lista nova aplicando uma função para cada elemento da lista original. Com a compreensão de lista é possível reduzir a expressão em um única linha, num formato semelhante a notação de conjuntos da matemática, economizando linhas de códigos. O formato geral da compreensão é: funcao

  • Um exemplo simples:
    S = { x | x ∈ N,x < 10}                                                                   em python:   S = [x for x in range(0, 10)]

    S = { x | x ∈ Z, x < 20, x é par}                                                    em python:   S = [x for x in range(0, 20) if x % 2 == 0]

    S = { x | x é uma letra na palavra 'BANANA', x é vogal}    em python:   S = [x for x in 'BANANA' if x in ['A', 'E', 'I', 'O', 'U']]

Agora execute os exemplos e veja os resultados:

#Conjunto (lista) dos números Naturais de 0 até 9
S = [x for x in range(0, 10)]
print(S)
#Conjunto (lista) do números inteiros de 0 até 18
S = [x for x in range(0, 20) if x % 2 == 0]
print(S)
#Conjunto (lista) das vogais da palavra BANANA
S = [x for x in 'BANANA' if x in ['A', 'E', 'I', 'O', 'U']]
print(S)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A compreensão que num primeiro momento parace confusa, exige apenas exercícios. Vamos Fazer uma comparação com a estrutura for considerndo o seguinte exemplo:
S = {x | x x ∈ N, x ≤ 100, x é uma raiz quadrada exata}

Escrito utilizando a estrutura FOR:

for i in range(1, 101):         #iterador
   if int(i**0.5) == i**0.5:    #filtro condicional
      print i                   #retorno

Escrito em código CL:

[ i for i in range(1, 100) if int(i**0.5) == i**0.5 ]
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content