10

Click here to load reader

Otimizando com list-comprehensions

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Otimizando com list-comprehensions

Otimizando com List Comprehensions

Adriano Monteiro Marques<[email protected]>

Page 2: Otimizando com list-comprehensions

Sintaxe

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

É equivalente a:

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

lista.append(valor)

Page 3: Otimizando com list-comprehensions

Gerando uma lista simples

Page 4: Otimizando com list-comprehensions

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]

Page 5: Otimizando com list-comprehensions

Laço for

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

Page 6: Otimizando com list-comprehensions

Performance

1 milhão de execuções:

List comprehension: 43.29 segundosLaço for: 71.49 segundos

Page 7: Otimizando com list-comprehensions

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

Page 8: Otimizando com list-comprehensions

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]

Page 9: Otimizando com list-comprehensions

Laço for

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

Page 10: Otimizando com list-comprehensions

Performance

1 milhão de execuções:

List comprehension: 75.34 segundosLaço for: 147.52 segundos