Otimizando com list-comprehensions

Preview:

DESCRIPTION

Um artigo sobre o paradigma funcional de programação em python

Citation preview

Otimizando com List Comprehensions

Adriano Monteiro Marques<py.adriano@gmail.com>

Sintaxe

[valor for valor in iteração if comparação]

É equivalente a:

lista = []for valor in iteração: if comparação:

lista.append(valor)

Gerando uma lista simples

List Comprehensiond = {"a":1,

"b":2,"c":3,"d":4,"e":5,"f":6,"g":9,"h":10}

[d[letra] for letra in d if d[letra]/2 == 0]

Laço for

lista = []for letra in d: if d[letra]/2 == 0: lista.append(d[letra])

Performance

1 milhão de execuções:

List comprehension: 43.29 segundosLaço for: 71.49 segundos

Gerando uma lista com o resultado de uma função

List comprehension

import mathd = {"a":1,

"b":2,"c":3,"d":4,"e":5,"f":6,"g":9,"h":10}

[math.sqrt(d[letra]) for letra in d if d[letra]/2 == 0]

Laço for

lista = []for letra in d: if d[letra]/2 == 0: lista.append(math.sqrt(d[letra]))

Performance

1 milhão de execuções:

List comprehension: 75.34 segundosLaço for: 147.52 segundos

Recommended