Top Banner
Desmistificando Built-in Functions, Lambda, List Comprehension… matheper
56

Desmistificando Built-in Functions, Lambda e List Comprehension...

Jul 09, 2015

Download

Technology

Matheus Pereira

Python é uma linguagem de programação simples, porém robusta, sofisticada e com diversos mecanismos poderosos como suas funções e listas.

Ahh, Python e suas peculiaridades! Built-in Functions, Lambda e List Comprehension?
O que são? Por que são? O que fazem? De onde vem? De que se alimentam?

Serão apresentados alguns recursos (quase) avançados relacionados às funções e listas. Boa parte destes recursos são opcionais, mas conhecê-los, saber utilizá-los e principalmente entendê-los pode simplificar nossas tarefas de desenvolvimento e, também, deixar nosso código (nem sempre) mais claro.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Desmistificando Built-in Functions, Lambda e List Comprehension...

Desmistificando Built-in Functions, Lambda, List

Comprehension…

matheper

Page 2: Desmistificando Built-in Functions, Lambda e List Comprehension...

Matheus Pereira

Page 3: Desmistificando Built-in Functions, Lambda e List Comprehension...

https://bitbucket.org/communitas/communities.practice

Page 4: Desmistificando Built-in Functions, Lambda e List Comprehension...

www.thedevelopersconference.com.br/tdc/2014/portoalegre/trilha-python

Page 5: Desmistificando Built-in Functions, Lambda e List Comprehension...

Python é uma linguagem de programação simples

Page 6: Desmistificando Built-in Functions, Lambda e List Comprehension...

Robusta, sofisticada e versátil

Page 7: Desmistificando Built-in Functions, Lambda e List Comprehension...

http://pt.slideshare.net/matheper/pythonificando-a-universidade

Page 8: Desmistificando Built-in Functions, Lambda e List Comprehension...

Programando de maneiraPythônica

Page 9: Desmistificando Built-in Functions, Lambda e List Comprehension...

Recursos opcionais, porém código (quase sempre) fica mais bonito

Page 10: Desmistificando Built-in Functions, Lambda e List Comprehension...

Não...

Page 11: Desmistificando Built-in Functions, Lambda e List Comprehension...

Sim!

Page 12: Desmistificando Built-in Functions, Lambda e List Comprehension...

Resultado

E se eu quiser utilizar o índice?

Page 13: Desmistificando Built-in Functions, Lambda e List Comprehension...

Talvez (não)...

Page 14: Desmistificando Built-in Functions, Lambda e List Comprehension...

Sim!

Page 15: Desmistificando Built-in Functions, Lambda e List Comprehension...

Sim!

?

?

Page 16: Desmistificando Built-in Functions, Lambda e List Comprehension...

Atribuição Múltipla

Page 17: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

rangelen

enumerateprint*

Page 18: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

Page 19: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

Page 20: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

all(iterable)any(iterable)enumerate(sequence, start=0)filter(function, iterable)len(s)map(function, iterable, ...)range(start, stop[, step])reduce(function, iterable[, initializer])

Page 21: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

Page 22: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

Page 23: Desmistificando Built-in Functions, Lambda e List Comprehension...

Built-in Functions

all(iterable)any(iterable)enumerate(sequence, start=0)filter(function, iterable)len(s)map(function, iterable, ...)range(start, stop[, step])reduce(function, iterable[, initializer])

Page 24: Desmistificando Built-in Functions, Lambda e List Comprehension...

filter(function, iterable)

map(function, iterable, ...)

reduce(function, iterable[, initializer])

Page 25: Desmistificando Built-in Functions, Lambda e List Comprehension...

len

Page 26: Desmistificando Built-in Functions, Lambda e List Comprehension...

map + len

Page 27: Desmistificando Built-in Functions, Lambda e List Comprehension...

map + len

Built-in Function

Page 28: Desmistificando Built-in Functions, Lambda e List Comprehension...

def

Page 29: Desmistificando Built-in Functions, Lambda e List Comprehension...

def

Page 30: Desmistificando Built-in Functions, Lambda e List Comprehension...

Propósito de Funções

Reduzir duplicação de códigoModularizar código

Page 31: Desmistificando Built-in Functions, Lambda e List Comprehension...

Funciona?

Page 32: Desmistificando Built-in Functions, Lambda e List Comprehension...

Não.

Page 33: Desmistificando Built-in Functions, Lambda e List Comprehension...

SyntaxError: invalid syntax

Por quê?

Page 34: Desmistificando Built-in Functions, Lambda e List Comprehension...

map(function, iterable, ...)

Por quê?

Page 35: Desmistificando Built-in Functions, Lambda e List Comprehension...

Def não retorna uma função

Page 36: Desmistificando Built-in Functions, Lambda e List Comprehension...

Def nomeia uma função que podeser chamada

posteriormente

Page 37: Desmistificando Built-in Functions, Lambda e List Comprehension...

def

Page 38: Desmistificando Built-in Functions, Lambda e List Comprehension...

Lambda

Page 39: Desmistificando Built-in Functions, Lambda e List Comprehension...

Lambda

lambda [lista-parametros] : expressão

Page 40: Desmistificando Built-in Functions, Lambda e List Comprehension...

Lambda

Page 41: Desmistificando Built-in Functions, Lambda e List Comprehension...

Lambda

lambda retorna um objeto função

a partir de uma expressão

Page 42: Desmistificando Built-in Functions, Lambda e List Comprehension...

Lambda

Chamando função lambda

Page 43: Desmistificando Built-in Functions, Lambda e List Comprehension...

map + lambda

Page 44: Desmistificando Built-in Functions, Lambda e List Comprehension...

map + lambda

Page 45: Desmistificando Built-in Functions, Lambda e List Comprehension...

filter + lambda

Page 46: Desmistificando Built-in Functions, Lambda e List Comprehension...

reduce + lambda

Page 47: Desmistificando Built-in Functions, Lambda e List Comprehension...

reduce + lambda

Page 48: Desmistificando Built-in Functions, Lambda e List Comprehension...

List Comprehensions

Page 49: Desmistificando Built-in Functions, Lambda e List Comprehension...

List Comprehensions

[ expressão-variavel-loop for variavel-loop in sequencia ]

Page 50: Desmistificando Built-in Functions, Lambda e List Comprehension...

List Comprehensions

Page 51: Desmistificando Built-in Functions, Lambda e List Comprehension...

Filtered List Comprehensions

[ expressão-variavel-loop for variavel-loop in sequencia ifexpressão-boolean-variavel-loop ]

Page 52: Desmistificando Built-in Functions, Lambda e List Comprehension...

Filtered List Comprehensions

Page 53: Desmistificando Built-in Functions, Lambda e List Comprehension...

Casos Possíveis

participantes.sort(key=lambda item: item['full_name'])

filter(lambda item:item[‘creator’] == member_id,

communities_local_roles,)

authorized = ['Moderador', 'Owner', 'Manager']roles = member.getRolesInContext(folder)return any([i for i in roles if i in authorized])

Page 54: Desmistificando Built-in Functions, Lambda e List Comprehension...

https://docs.python.org/2/faq/programming.html#is-it-possible-to-write-obfuscated-one-liners-in-python

Simples é melhor que complexo

Page 55: Desmistificando Built-in Functions, Lambda e List Comprehension...

O que não vimos

❏ Iterators❏ Generators❏ Decorators❏ Clousure❏ ...

Page 56: Desmistificando Built-in Functions, Lambda e List Comprehension...

Obrigado!

matheper