8. List Comprehension

  • List Comprehension permite desenvolver listas utilizando uma notação diferente, que é basicamente uma linha de loop for construída dentro de uma lista.

                              Exemplo: lst = [x for x in 'sequencia']
    
  • Há uma vantagem em termos de processamento ao utilizar a função list comprehension ao invés da função map(), embora ambas sejam construídas em C, ao se trabalhar com grandes volumes de dados a performance de função list comprehension é significativamente superior quando comparada com a função map().

8.1. Vejamos como funciona.

  • Retornar cada caracter em uma sequência de caracteres
lst = [x for x in 'python']
  • Checando o resultado
lst
['p', 'y', 't', 'h', 'o', 'n']
  • Qual é o tipo deste objeto python?
type(lst)
list
  • Variável x elevada ao quadrado para um range de números e retornar uma lista
lst = [x**2 for x in range(0, 11)]
lst
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • Verificar os números pares em um range de números
lst = [x for x in range(11) if x % 2 == 0]
lst
[0, 2, 4, 6, 8, 10]
  • Converter Celsius para Fahrenheit
celsius = [0,10,20.1,34.5]

fahrenheit = [ ((float(9)/5)*temp + 32) for temp in celsius ]

fahrenheit
[32.0, 50.0, 68.18, 94.1]
  • Operações aninhadas
lst = [ x**2 for x in [x**2 for x in range(11)]]
lst
[0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000]