Desmistificando Built-in 
Functions, Lambda, List 
Comprehension… 
matheper
Matheus Pereira
https://bitbucket.org/communitas/communities.practice
www.thedevelopersconference.com.br/tdc/2014/portoalegre/trilha-python
Python é uma linguagem de 
programação simples
Robusta, sofisticada e versátil
http://pt.slideshare.net/matheper/pythonificando-a-universidade
Programando de maneira 
Pythônica
Recursos opcionais, porém código 
(quase sempre) fica mais bonito
Não...
Sim!
Resultado 
E se eu quiser utilizar o índice?
Talvez (não)...
Sim!
Sim! 
? 
?
Atribuição Múltipla
Built-in Functions 
range 
len 
enumerate 
print*
Built-in Functions
Built-in Functions
Built-in Functions 
all(iterable) 
any(iterable) 
enumerate(sequence, start=0) 
filter(function, iterable) 
len(s) 
map(fu...
Built-in Functions
Built-in Functions
Built-in Functions 
all(iterable) 
any(iterable) 
enumerate(sequence, start=0) 
filter(function, iterable) 
len(s) 
map(fu...
filter(function, iterable) 
map(function, iterable, ...) 
reduce(function, iterable[, initializer])
len
map + len
map + len 
Built-in Function
def
def
Propósito de Funções 
Reduzir duplicação de código 
Modularizar código
Funciona?
Não.
Por quê? 
SyntaxError: invalid syntax
Por quê? 
map(function, iterable, ...)
Def não retorna uma função
Def nomeia uma função que pode 
ser chamada 
posteriormente
def
Lambda
Lambda 
lambda [lista-parametros] : expressão
Lambda
Lambda 
lambda retorna um 
objeto função 
a partir de uma expressão
Lambda 
Chamando função lambda
map + lambda
map + lambda
filter + lambda
reduce + lambda
reduce + lambda
List Comprehensions
List Comprehensions 
[ expressão-variavel-loop for variavel-loop in sequencia ]
List Comprehensions
Filtered List Comprehensions 
[ expressão-variavel-loop for variavel-loop in sequencia if 
expressão-boolean-variavel-loop...
Filtered List Comprehensions
Casos Possíveis 
participantes.sort(key=lambda item: item['full_name']) 
filter( 
lambda item:item[‘creator’] == member_id...
Simples é melhor que complexo 
https://docs.python.org/2/faq/programming.html#is-it-possible-to-write-obfuscated-one-liner...
O que não vimos 
❏ Iterators 
❏ Generators 
❏ Decorators 
❏ Clousure 
❏ ...
Obrigado! 
matheper
Próximos SlideShares
Carregando em…5
×

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

338 visualizações

Publicada em

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.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
338
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

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

×