[Python-checkins] python/dist/src/Doc/lib libcollections.tex, 1.4, 1.5

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sat Feb 28 21:15:58 EST 2004


Update of /cvsroot/python/python/dist/src/Doc/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24444/Doc/lib

Modified Files:
	libcollections.tex 
Log Message:
Improvements to collections.deque():

* Add doctests for the examples in the library reference.
* Add two methods, left() and right(), modeled after deques in C++ STL.
* Apply the new method to asynchat.py.
* Add comparison operators to make deques more substitutable for lists.
* Replace the LookupErrors with IndexErrors to more closely match lists.



Index: libcollections.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libcollections.tex,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** libcollections.tex	7 Feb 2004 21:12:59 -0000	1.4
--- libcollections.tex	29 Feb 2004 02:15:55 -0000	1.5
***************
*** 55,66 ****
  \end{methoddesc}
  
  \begin{methoddesc}{pop}{}
     Remove and return an element from the right side of the deque.
!    If no elements are present, raises a \exception{LookupError}.
  \end{methoddesc}
  
  \begin{methoddesc}{popleft}{}
     Remove and return an element from the left side of the deque.
!    If no elements are present, raises a \exception{LookupError}.   
  \end{methoddesc}
  
--- 55,76 ----
  \end{methoddesc}
  
+ \begin{methoddesc}{left}{}
+    Return leftmost element from the deque.
+    If no elements are present, raises a \exception{IndexError}.   
+ \end{methoddesc}
+ 
  \begin{methoddesc}{pop}{}
     Remove and return an element from the right side of the deque.
!    If no elements are present, raises a \exception{IndexError}.
  \end{methoddesc}
  
  \begin{methoddesc}{popleft}{}
     Remove and return an element from the left side of the deque.
!    If no elements are present, raises a \exception{IndexError}.   
! \end{methoddesc}
! 
! \begin{methoddesc}{right}{}
!    Return the rightmost element from the deque.
!    If no elements are present, raises a \exception{IndexError}.   
  \end{methoddesc}
  
***************
*** 81,94 ****
  >>> d = deque('ghi')                 # make a new deque with three items
  >>> for elem in d:                   # iterate over the deque's elements
! 	print elem.upper()
! 
! 	
  G
  H
  I
  >>> d.append('j')                    # add a new entry to the right side
  >>> d.appendleft('f')                # add a new entry to the left side
  >>> d                                # show the representation of the deque
  deque(['f', 'g', 'h', 'i', 'j'])
  >>> d.pop()                          # return and remove the rightmost item
  'j'
--- 91,104 ----
  >>> d = deque('ghi')                 # make a new deque with three items
  >>> for elem in d:                   # iterate over the deque's elements
! ...     print elem.upper()	
  G
  H
  I
+ 
  >>> d.append('j')                    # add a new entry to the right side
  >>> d.appendleft('f')                # add a new entry to the left side
  >>> d                                # show the representation of the deque
  deque(['f', 'g', 'h', 'i', 'j'])
+ 
  >>> d.pop()                          # return and remove the rightmost item
  'j'
***************
*** 97,100 ****
--- 107,115 ----
  >>> list(d)                          # list the contents of the deque
  ['g', 'h', 'i']
+ 
+ >>> d.left()                         # peek at leftmost item
+ 'g'
+ >>> d.right()                        # peek at rightmost item
+ 'i'
  >>> list(reversed(d))                # list the contents of a deque in reverse
  ['i', 'h', 'g']
***************
*** 110,122 ****
  >>> d
  deque(['g', 'h', 'i', 'j', 'k', 'l'])
  >>> deque(reversed(d))               # make a new deque in reverse order
  deque(['l', 'k', 'j', 'i', 'h', 'g'])
  >>> d.clear()                        # empty the deque
  >>> d.pop()                          # cannot pop from an empty deque
- 
  Traceback (most recent call last):
    File "<pyshell#6>", line 1, in -toplevel-
      d.pop()
! LookupError: pop from an empty deque
  
  >>> d.extendleft('abc')              # extendleft() reverses the input order
--- 125,137 ----
  >>> d
  deque(['g', 'h', 'i', 'j', 'k', 'l'])
+ 
  >>> deque(reversed(d))               # make a new deque in reverse order
  deque(['l', 'k', 'j', 'i', 'h', 'g'])
  >>> d.clear()                        # empty the deque
  >>> d.pop()                          # cannot pop from an empty deque
  Traceback (most recent call last):
    File "<pyshell#6>", line 1, in -toplevel-
      d.pop()
! IndexError: pop from an empty deque
  
  >>> d.extendleft('abc')              # extendleft() reverses the input order




More information about the Python-checkins mailing list