SlideShare a Scribd company logo
THE PYTHON STD LIB BY
EXAMPLE – DATA
STRUCTURES
John
Saturday, December 21, 2013
Overview of this class
• Python already include several standard
programming data structures, such as
list,tuple,dict and set.
• The collection module include other several
data structures, such as Deque, defaultdict,
OrderDict and namedtuple.
• For large amount of data, an array module is
more efficient
THE COLLECTION
MODULE
Data type Counter
• A container tracks how many times
equivalent values are added.
Update() method of Counter
• The count value will be increased based on
the new data, rather than replaced.
More functions in Counter class
• c[i]: return the count of i.
• c.elements(): return an iterator
• c.most_common(3): produce a list in order of
frequency
• c.update({‘a’:1,’b’:5}): The count value will be
increased based on the new data, rather than
replaced.
Data type defaultdict
Similar as dict.It can let the caller specify the
default value when container is initialized.
Data type deque
• Support adding and removing elements from
either end.
More method in deque
•
•
•
•

Method extend,extendleft
Method append,appendleft
Method pop,popleft
Method rotate: rotate the deque to the right
direction
Data type namedtuple
• Similar as regular tuple, but can use
instance.attr to access the elements
Data type OrderDict
• A dictionary subclass that remember the
order.
Data type heapq
• A min-heap: a tree like data structure that
the parent should be less than or equal to its
children.
• Binary heap use a list or array represent it.
The children of element
N is 2*N+1 and 2*N+2(
zero based indexes).
Function of heapq class
Heap =[]
•method: heapq.heappush(Heap,n): add n into
heap.
•Method: heapq.heapify(list): sort list as a heap
•Method heapq.heappop(Heap): pop the smallest
item
•Method heapq.heapreplace(heap,n): replace the
smallest item with n.
Data type bitsect
• Purpose is maintain a list in sorted order
without having to call sort each time adding
new item.
Method of bitsect
• Method insort(alias of insort_right): insert
after the existing value
• Method insort_left: insert before the existing
value.
• Method bisect(alias bisect_right): return the
position after the existing value.
• Method bisect_left: return the position
before the existing value.
Data type Queue
• The Queue module provides FIFO (first in,
first out) data structure suitable for
multithreaded programming.
Data type LIFO Queue (Stack)
• LifoQueue use LIFO (Last in, first out)
(normally we call it stack data structure).
Data type PriorityQueue
• The process order is based on characteristics
of those items, rather than the order.
Example code see here:
Import Queue
q = Queue.PriorityQueue()
THE WEAKREF
MODULE
Brief introduction
• The weakref module support weak
references to objects.
• A normal reference increase the reference
count on the object and prevent it from
being garbage collected.
Example of weakref
• Class ref to create a weak reference
• Ref will return None
if obj is deleted.
THE COPY MODULE
Brief introduction
• Provide functions for duplicating objects
using shallow or deep copy semantics
• The copy module include two functions,
copy() and deepcopy().
Shallow copy: copy()
• A new container populated with references
to the contents of the original object.
Deep copies: deepcopy()
• A New container populated with copies of
the contents of the original object.
• It is possible to control hwo copies are made
using the __copy__() and __deepcopy__()
special methods.
THE PPRINT
MODULE
Quick example of pprint
• The pprint module contains a “pretty
printer”
Work with custom classes
• If class define __repr__() method, pprint()
can also work.
More options
• Option depth: control the print depth for
very deep data strctures.
>>> pprint(data,depth=1)
• Option width: default output width is 80
columns.
>>> pprint(data, width=5)
Reference

• Source code
https://bitbucket.org/qzhang03022/py_stdlib_by

More Related Content

PPT
Python advanced 3.the python std lib by example – algorithm
PPT
Python advanced 3.the python std lib by example – application building blocks
PPT
Python advanced 1.handle error, generator, decorator and decriptor
PDF
Lec16-CS110 Computational Engineering
PPT
Review functions
PDF
Algorithms: I
PDF
Priority Queue
PPT
Profiling in python
Python advanced 3.the python std lib by example – algorithm
Python advanced 3.the python std lib by example – application building blocks
Python advanced 1.handle error, generator, decorator and decriptor
Lec16-CS110 Computational Engineering
Review functions
Algorithms: I
Priority Queue
Profiling in python

What's hot (20)

PPTX
FSTREAM,ASSERT LIBRARY & CTYPE LIBRARY.
PDF
Stack & Queue
PPTX
Function overloading
PDF
Python Generators
PPTX
Stack Data structure
PPTX
PYTHON PROGRAMMING
PDF
An Introduction to the C++ Standard Library
PPTX
PPT
List in java
PDF
Algorithms: II
PPT
Dynamic Memory Allocation
PDF
Python recursion
PPTX
Grid search (parameter tuning)
PPTX
Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)
PPTX
Chapter iii(advance function)
PPT
2CPP16 - STL
PDF
Chapter 10 Library Function
PPTX
Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)
FSTREAM,ASSERT LIBRARY & CTYPE LIBRARY.
Stack & Queue
Function overloading
Python Generators
Stack Data structure
PYTHON PROGRAMMING
An Introduction to the C++ Standard Library
List in java
Algorithms: II
Dynamic Memory Allocation
Python recursion
Grid search (parameter tuning)
Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)
Chapter iii(advance function)
2CPP16 - STL
Chapter 10 Library Function
Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)
Ad

Similar to Python advanced 3.the python std lib by example –data structures (20)

PPTX
Standard Template Library
PPT
data structures queue stack insert and delete time complexity
PDF
stacks and queues class 12 in c++
PPTX
2CPP13 - Operator Overloading
PPTX
Data Structure Stack operation in python
PDF
9 python data structure-2
PPTX
Certification preparation - Net classses and functions.pptx
PPTX
stack.pptx
PPT
02._Object-Oriented_Programming_Concepts.ppt
PDF
.Net Classes and Objects | UiPath Community
PPT
Advanced c#
PPTX
How to choose best containers in STL (C++)
KEY
Modules Building Presentation
PDF
Secrets of highly_avail_oltp_archs
PPT
Objective-C for iOS Application Development
PPTX
Queue collection of Frame work in oops through java
PPTX
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
PPTX
Presentation 4th
PPTX
dotNet Miami - June 21, 2012: Richie Rump: Entity Framework: Code First and M...
PPT
Collections in Java
Standard Template Library
data structures queue stack insert and delete time complexity
stacks and queues class 12 in c++
2CPP13 - Operator Overloading
Data Structure Stack operation in python
9 python data structure-2
Certification preparation - Net classses and functions.pptx
stack.pptx
02._Object-Oriented_Programming_Concepts.ppt
.Net Classes and Objects | UiPath Community
Advanced c#
How to choose best containers in STL (C++)
Modules Building Presentation
Secrets of highly_avail_oltp_archs
Objective-C for iOS Application Development
Queue collection of Frame work in oops through java
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
Presentation 4th
dotNet Miami - June 21, 2012: Richie Rump: Entity Framework: Code First and M...
Collections in Java
Ad

More from John(Qiang) Zhang (7)

PPTX
Git and github introduction
PPT
Python testing
PPT
Introduction to jython
PPT
Introduction to cython
PPT
A useful tools in windows py2exe(optional)
PPT
Python advanced 3.the python std lib by example – system related modules
PPTX
Python advanced 2. regular expression in python
Git and github introduction
Python testing
Introduction to jython
Introduction to cython
A useful tools in windows py2exe(optional)
Python advanced 3.the python std lib by example – system related modules
Python advanced 2. regular expression in python

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
A Presentation on Artificial Intelligence
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Getting Started with Data Integration: FME Form 101
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
1. Introduction to Computer Programming.pptx
PDF
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Programs and apps: productivity, graphics, security and other tools
A Presentation on Artificial Intelligence
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Getting Started with Data Integration: FME Form 101
Univ-Connecticut-ChatGPT-Presentaion.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
1. Introduction to Computer Programming.pptx
Approach and Philosophy of On baking technology

Python advanced 3.the python std lib by example –data structures

  • 1. THE PYTHON STD LIB BY EXAMPLE – DATA STRUCTURES John Saturday, December 21, 2013
  • 2. Overview of this class • Python already include several standard programming data structures, such as list,tuple,dict and set. • The collection module include other several data structures, such as Deque, defaultdict, OrderDict and namedtuple. • For large amount of data, an array module is more efficient
  • 4. Data type Counter • A container tracks how many times equivalent values are added.
  • 5. Update() method of Counter • The count value will be increased based on the new data, rather than replaced.
  • 6. More functions in Counter class • c[i]: return the count of i. • c.elements(): return an iterator • c.most_common(3): produce a list in order of frequency • c.update({‘a’:1,’b’:5}): The count value will be increased based on the new data, rather than replaced.
  • 7. Data type defaultdict Similar as dict.It can let the caller specify the default value when container is initialized.
  • 8. Data type deque • Support adding and removing elements from either end.
  • 9. More method in deque • • • • Method extend,extendleft Method append,appendleft Method pop,popleft Method rotate: rotate the deque to the right direction
  • 10. Data type namedtuple • Similar as regular tuple, but can use instance.attr to access the elements
  • 11. Data type OrderDict • A dictionary subclass that remember the order.
  • 12. Data type heapq • A min-heap: a tree like data structure that the parent should be less than or equal to its children. • Binary heap use a list or array represent it. The children of element N is 2*N+1 and 2*N+2( zero based indexes).
  • 13. Function of heapq class Heap =[] •method: heapq.heappush(Heap,n): add n into heap. •Method: heapq.heapify(list): sort list as a heap •Method heapq.heappop(Heap): pop the smallest item •Method heapq.heapreplace(heap,n): replace the smallest item with n.
  • 14. Data type bitsect • Purpose is maintain a list in sorted order without having to call sort each time adding new item.
  • 15. Method of bitsect • Method insort(alias of insort_right): insert after the existing value • Method insort_left: insert before the existing value. • Method bisect(alias bisect_right): return the position after the existing value. • Method bisect_left: return the position before the existing value.
  • 16. Data type Queue • The Queue module provides FIFO (first in, first out) data structure suitable for multithreaded programming.
  • 17. Data type LIFO Queue (Stack) • LifoQueue use LIFO (Last in, first out) (normally we call it stack data structure).
  • 18. Data type PriorityQueue • The process order is based on characteristics of those items, rather than the order. Example code see here: Import Queue q = Queue.PriorityQueue()
  • 20. Brief introduction • The weakref module support weak references to objects. • A normal reference increase the reference count on the object and prevent it from being garbage collected.
  • 21. Example of weakref • Class ref to create a weak reference • Ref will return None if obj is deleted.
  • 23. Brief introduction • Provide functions for duplicating objects using shallow or deep copy semantics • The copy module include two functions, copy() and deepcopy().
  • 24. Shallow copy: copy() • A new container populated with references to the contents of the original object.
  • 25. Deep copies: deepcopy() • A New container populated with copies of the contents of the original object. • It is possible to control hwo copies are made using the __copy__() and __deepcopy__() special methods.
  • 27. Quick example of pprint • The pprint module contains a “pretty printer”
  • 28. Work with custom classes • If class define __repr__() method, pprint() can also work.
  • 29. More options • Option depth: control the print depth for very deep data strctures. >>> pprint(data,depth=1) • Option width: default output width is 80 columns. >>> pprint(data, width=5)

Editor's Notes

  • #4: This template can be used as a starter file for presenting training materials in a group setting. Sections Right-click on a slide to add sections. Sections can help to organize your slides or facilitate collaboration between multiple authors. Notes Use the Notes section for delivery notes or to provide additional details for the audience. View these notes in Presentation View during your presentation. Keep in mind the font size (important for accessibility, visibility, videotaping, and online production) Coordinated colors Pay particular attention to the graphs, charts, and text boxes. Consider that attendees will print in black and white or grayscale. Run a test print to make sure your colors work when printed in pure black and white and grayscale. Graphics, tables, and graphs Keep it simple: If possible, use consistent, non-distracting styles and colors. Label all graphs and tables.