* Note list optimizations

* Move an example out of a comment.
This commit is contained in:
Raymond Hettinger 2004-02-13 19:00:07 +00:00
parent cb3e580ebc
commit 7a6d297bda
1 changed files with 14 additions and 13 deletions

View File

@ -143,20 +143,12 @@ works like the \method{split()} method but splits from the end of
the string.
\begin{verbatim}
>>> 'a b c'.split(None, 1)
['a', 'b c']
>>> 'a b c'.rsplit(None, 1)
['a b', 'c']
>>> 'www.python.org'.split('.', 1)
['www', 'python.org']
'www.python.org'.rsplit('.', 1)
['www.python', 'org']
\end{verbatim}
% Consider replacing the above example with one that is less
% abstract and more suggestive of why the function is useful:
%
% >>> 'www.python.org'.split('.', 1)
% ['www', 'python.org']
% >>> 'www.python.org'.rsplit('.', 1)
% ['www.python', 'org']
\item The \method{sort()} method of lists gained three keyword
arguments, \var{cmp}, \var{key}, and \var{reverse}. These arguments
make some common usages of \method{sort()} simpler. All are optional.
@ -267,6 +259,15 @@ yellow 5
\begin{itemize}
\item The machinery for growing and shrinking lists was optimized
for speed and for space efficiency. Small lists (under six bytes)
never over-allocate by more than one byte. Large lists do not
over-allocate by more than 1/8th. Appending and popping from lists
now runs faster due to more efficient code paths and less frequent
use of the underlying system realloc(). List comprehensions also
benefit. The amount of improvement varies between systems and shows
the greatest improvement on systems with poor realloc() implementations.
\item \function{list()}, \function{tuple()}, \function{map()},
\function{filter()}, and \function{zip()} now run several times
faster with non-sequence arguments that supply a \method{__len__()}