0
THE PYTHON STD LIB BY
EXAMPLE – ALGORITHM
John
Saturday, December 21, 2013
Brief introduction
• Python includes several modules which can
implement algorithm elegantly and concisely.
• It support u...
FUNCTOOLS –TOOLS FOR MANIPULATING
FUNCTIONS
Partial Objects: provide default
argument
• The partial objects can provide or change the default
value of the argument.
•...
Function update_wrapper()
• The partial object does not have __name__
and __doc__ attributes by default.
• Using update_wr...
the “rich comparison”
First let us learn which is “rich comparion” in
python.
•Rich comparison method API (__lt__, __le__,...
Example of rich comparision
We implement __eq__ and __gt__.
Functools.total_ordering can implement other
operator (<, <=, ...
Function cmp_to_key: convert
cmp to key for sorting
• In Python 2.xx, cmp do comparion:
cmp(2,1) -> 1
cmp(1,1) -> 0
cmp(1,...
Quick example of cmp_to_key
• Built-in funtion cmp need two argument.
• Sorted function can use other option
key=func. Sor...
ITERTOOLSITERATOR
FUNCTIONS
Brief introduction
• The itertools module includes a set of
functions for working with sequence data
sets (list, tuple,set...
Function chain(): Merge iterators
• Take serveral iterators as arguments and
return a single iterator
Function imap: similar as map
• Imap accept a function, and multiple
sequences, return a tuple.
Other function merge and split
iterators
• Function izip: like zip, but combine iterator
and return iterator of tuple inst...
Function starmap:
• First, let us review the star * syntax in Python.
• Star * means unpack the sequence reference as
argu...
Function starmap: unpack the
input
• Unpack the item as argument using the *
syntax
Function count(): iterator produce
consecutive integers
• Function count(start=0,step=1): user can pass
the start and step...
Function cycle: iterator do
indefinitely repeats
• It need remember the whole input, so it may
consume quite a bit memo if...
Function repeat: repeat same
value several time
• This example mean repeat ‘a’ 5 times.
>>> itertools.repeat(‘a’, 5)
It is...
Function dropwhile and takewhile
• Func dropwhile start output while condition
become false for the first time
• Example, ...
Function dropwhile and takewhile
• The opposite of dropwhile: stop output while
condition become false for the first time
...
Upcoming SlideShare
Loading in...5
×

Python advanced 3.the python std lib by example – algorithm

451

Published on

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

No Downloads
Views
Total Views
451
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Python advanced 3.the python std lib by example – algorithm"

  1. 1. THE PYTHON STD LIB BY EXAMPLE – ALGORITHM John Saturday, December 21, 2013
  2. 2. Brief introduction • Python includes several modules which can implement algorithm elegantly and concisely. • It support uprely procedural, OOP and functional styles. • It includes: functools, partial , itertools, operator, contextlib etc
  3. 3. FUNCTOOLS –TOOLS FOR MANIPULATING FUNCTIONS
  4. 4. Partial Objects: provide default argument • The partial objects can provide or change the default value of the argument. • Example code (assume we have define function myfunc(a,b=1) : >>> import functools >>> p1 = functools.partial(myfunc,b=4) >>> p1(‘passing a’) >>> p2 = functools.partial(myfunc,’default a’,b=99) >>> p2() >>> p2(b=‘override b’)
  5. 5. Function update_wrapper() • The partial object does not have __name__ and __doc__ attributes by default. • Using update_wrapper(0 copies or added attributes from the original function. Format: >>> functools.update_wrapper(p1,myfunc)
  6. 6. the “rich comparison” First let us learn which is “rich comparion” in python. •Rich comparison method API (__lt__, __le__, __eq__, __gt__, __ge__) (Here le means less than, le means “less or equal”, gt means “greater than”, ge means “greater than or equal”) •These method API can help perform a single comparison operation and return a Boolean value
  7. 7. Example of rich comparision We implement __eq__ and __gt__. Functools.total_ordering can implement other operator (<, <=, >= etc) base on eq and gt.
  8. 8. Function cmp_to_key: convert cmp to key for sorting • In Python 2.xx, cmp do comparion: cmp(2,1) -> 1 cmp(1,1) -> 0 cmp(1,2) -> -1 • In python 3, cmp in sort function no longer supported. • Functools.cmp_to_key convert cmp to key for sorting
  9. 9. Quick example of cmp_to_key • Built-in funtion cmp need two argument. • Sorted function can use other option key=func. Sorted by key (only support this on Python 3.X)
  10. 10. ITERTOOLSITERATOR FUNCTIONS
  11. 11. Brief introduction • The itertools module includes a set of functions for working with sequence data sets (list, tuple,set,dict etc). • Iterator based code offer better memory comsumption.
  12. 12. Function chain(): Merge iterators • Take serveral iterators as arguments and return a single iterator
  13. 13. Function imap: similar as map • Imap accept a function, and multiple sequences, return a tuple.
  14. 14. Other function merge and split iterators • Function izip: like zip, but combine iterator and return iterator of tuple instead of list • Function islice: similar as slice • Function imap: similar as map • Function ifilter: similar as filter, filter those items test functions return True • Function ifilterfalse: filter those items where the test function return False
  15. 15. Function starmap: • First, let us review the star * syntax in Python. • Star * means unpack the sequence reference as argument list. >>> def foo(bar,lee): print bar,lee >>> a = [1,2] >>> foo(a) # it is wrong, need two arguments >>> foo(*a) # it is right. The list is unpack >>>foo(1,2) # it is the same thing
  16. 16. Function starmap: unpack the input • Unpack the item as argument using the * syntax
  17. 17. Function count(): iterator produce consecutive integers • Function count(start=0,step=1): user can pass the start and step value.No upper bound argument. >>> a = itertools.count(start=10,step=10) >>> for i in a: print I if I >100: break Print list 10,20,30 … 110
  18. 18. Function cycle: iterator do indefinitely repeats • It need remember the whole input, so it may consume quite a bit memo if input iterator is long.
  19. 19. Function repeat: repeat same value several time • This example mean repeat ‘a’ 5 times. >>> itertools.repeat(‘a’, 5) It is similar as list [‘a’,’a’.’a’,’a’,’a’] The return is a iterator but not list. So it use the memo only when it is called.
  20. 20. Function dropwhile and takewhile • Func dropwhile start output while condition become false for the first time • Example, 3rd element do not met x<1. So it return 3 to end of this list
  21. 21. Function dropwhile and takewhile • The opposite of dropwhile: stop output while condition become false for the first time • So all output items meet the condition function.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×