Your SlideShare is downloading. ×
0
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

python: Listas, deques, Dicionarios e outros monstros mitologicos

1,126

Published on

Uma visita no que esta debaixo do capô de quando usamos listas, dicionarios e tal em python

Uma visita no que esta debaixo do capô de quando usamos listas, dicionarios e tal em python

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,126
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Listas, Dicionários, Setse outras Bestas Mitológicas --- Adriano Petrich
  • 2. O(n)?
  • 3. Listas
  • 4. Prós: Fantásticas
  • 5. Listasl = []
  • 6. L.append(foo) é O(1)
  • 7. L.pop() é O(1)
  • 8. TáIsso não é tão fantástico
  • 9. L[foo] = bar, L[foo] O(1)
  • 10. Isso sim é fantástico
  • 11. meh
  • 12. ListasSe comportam como RAM porque sãomodeladas da mesma forma
  • 13. CriaçãoUsa 20 bytes de overhead (classe, len,tamanho da alocação e posição)
  • 14. masUma lista vazia não tem memória alocadapara os dados.
  • 15. Quandol.append(1)
  • 16. Acontece a AlocaçãoAloca espaço para 4 elementosQuando chega em 4 aloca espaço para 8 ecopia os 4Depois 16
  • 17. E assim por diante
  • 18. Ou Quase25, 35, 46, 58, 72, 88
  • 19. L.append(foo) é O(1)
  • 20. Here be monsters
  • 21. Cons
  • 22. L.pop(0) é O(n)
  • 23. L.pop(0) é O(n)-ish
  • 24. Alternativafrom collections import dequedeque()
  • 25. DequesDouble Ended QUEueInternamente é uma lista ligada duplaPrósFilas FIFO e não muito mais
  • 26. De volta aslistas
  • 27. foo in L é O(n)
  • 28. Alternativasset()
  • 29. Dicionários
  • 30. Dicionários?>>> d = {}>>> d[a] = 1
  • 31. Interlúdio>>> hash(a)12416037344>>> bin(hash(a)0b1011100100000011011011000111100000
  • 32. Hashtable
  • 33. Hash a>>> hash(a)12416037344>>> bin(hash(a)...000
  • 34. Hashtable
  • 35. Hash b>>> d[b] = 2>>> hash(b)12544037731>>> bin(hash(b)...011
  • 36. Hashtable
  • 37. Hash c>>> d[c] = 3>>> hash(c)12672038114>>> bin(hash(c)...010
  • 38. Hashtable
  • 39. Hash j>>> d[j] = 4>>> hash(j)13568040811>>> bin(hash(j)...011
  • 40. Enquanto isso naHashtable
  • 41. Outra vez na Hashtable
  • 42. Duas coisas>>> d1 = {a:1, j:4, b:2}>>> d2 = {a:1, b:2, j:4}>>> d1{a: 1, j: 4, b: 2}>>> d2{a: 1, b: 2, j: 4}>>> d1 == d2True
  • 43. Dicionários não temordemTem sim! A ordem da hashtable >>> {a:1, j:4, b:2}.keys() [a, j, b] >>> {a:1, j:4, b:2}.values() [1, 4, 2]
  • 44. Existem bem maissutilezasVídeo da pycon 2010: the might dictionary
  • 45. Sets
  • 46. SetsImplementação igual dos dicionários sóque sem o valor.Então:
  • 47. foo in s é O(1)
  • 48. Grafos
  • 49. A BC D
  • 50. A BC D
  • 51. Duas formasa,b,c,d = range(4)n = [[0,1,1,0], [0,0,1,0], [0,0,0,1], [0,0,0,0]]>>> n[a][b]1
  • 52. Ou n = { a: set(bc), b: set(c), c: set(d), d: set()}Python Patterns implementing graphs--Guido van Rossum
  • 53. 2A B3 4C 5 D
  • 54. passe para dicionáriosn = { a: {b:2, c:3}, b: {c:4}, c: {d:5}, d: {}}
  • 55. Créditoshttp://www.flickr.com/photos/autumn_bliss/414160195http://www.flickr.com/photos/autumn_bliss/414160148
  • 56. Dúvidas?@fractal+Adriano Petrich[codando.com.br, sfp.adrianopetrich.com,blog.adrianopetrich.com]

×