desmistificando built-in functions, lambda e list comprehension
DESCRIPTION
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.TRANSCRIPT
![Page 1: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/1.jpg)
Desmistificando Built-in Functions, Lambda, List
Comprehension…
matheper
![Page 2: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/2.jpg)
Matheus Pereira
![Page 3: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/3.jpg)
https://bitbucket.org/communitas/communities.practice
![Page 4: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/4.jpg)
www.thedevelopersconference.com.br/tdc/2014/portoalegre/trilha-python
![Page 5: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/5.jpg)
Python é uma linguagem de programação simples
![Page 6: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/6.jpg)
Robusta, sofisticada e versátil
![Page 7: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/7.jpg)
http://pt.slideshare.net/matheper/pythonificando-a-universidade
![Page 8: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/8.jpg)
Programando de maneiraPythônica
![Page 9: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/9.jpg)
Recursos opcionais, porém código (quase sempre) fica mais bonito
![Page 10: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/10.jpg)
Não...
![Page 11: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/11.jpg)
Sim!
![Page 12: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/12.jpg)
Resultado
E se eu quiser utilizar o índice?
![Page 13: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/13.jpg)
Talvez (não)...
![Page 14: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/14.jpg)
Sim!
![Page 15: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/15.jpg)
Sim!
?
?
![Page 16: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/16.jpg)
Atribuição Múltipla
![Page 17: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/17.jpg)
Built-in Functions
rangelen
enumerateprint*
![Page 18: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/18.jpg)
Built-in Functions
![Page 19: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/19.jpg)
Built-in Functions
![Page 20: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/21.jpg)
Built-in Functions
![Page 22: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/22.jpg)
Built-in Functions
![Page 23: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/24.jpg)
filter(function, iterable)
map(function, iterable, ...)
reduce(function, iterable[, initializer])
![Page 25: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/25.jpg)
len
![Page 26: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/26.jpg)
map + len
![Page 27: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/27.jpg)
map + len
Built-in Function
![Page 28: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/28.jpg)
def
![Page 29: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/29.jpg)
def
![Page 30: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/30.jpg)
Propósito de Funções
Reduzir duplicação de códigoModularizar código
![Page 31: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/31.jpg)
Funciona?
![Page 32: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/32.jpg)
Não.
![Page 33: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/33.jpg)
SyntaxError: invalid syntax
Por quê?
![Page 34: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/34.jpg)
map(function, iterable, ...)
Por quê?
![Page 35: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/35.jpg)
Def não retorna uma função
![Page 36: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/36.jpg)
Def nomeia uma função que podeser chamada
posteriormente
![Page 37: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/37.jpg)
def
![Page 38: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/38.jpg)
Lambda
![Page 39: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/39.jpg)
Lambda
lambda [lista-parametros] : expressão
![Page 40: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/40.jpg)
Lambda
![Page 41: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/41.jpg)
Lambda
lambda retorna um objeto função
a partir de uma expressão
![Page 42: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/42.jpg)
Lambda
Chamando função lambda
![Page 43: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/43.jpg)
map + lambda
![Page 44: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/44.jpg)
map + lambda
![Page 45: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/45.jpg)
filter + lambda
![Page 46: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/46.jpg)
reduce + lambda
![Page 47: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/47.jpg)
reduce + lambda
![Page 48: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/48.jpg)
List Comprehensions
![Page 49: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/49.jpg)
List Comprehensions
[ expressão-variavel-loop for variavel-loop in sequencia ]
![Page 50: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/50.jpg)
List Comprehensions
![Page 51: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/52.jpg)
Filtered List Comprehensions
![Page 53: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/53.jpg)
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://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/55.jpg)
O que não vimos
❏ Iterators❏ Generators❏ Decorators❏ Clousure❏ ...
![Page 56: Desmistificando Built-in Functions, Lambda e List Comprehension](https://reader033.vdocuments.site/reader033/viewer/2022060203/559e1bcd1a28abef5b8b46d4/html5/thumbnails/56.jpg)
Obrigado!
matheper