Kaydet (Commit) 8a61f499 authored tarafından Andrew M. Kuchling's avatar Andrew M. Kuchling

Fill out the 'Porting' section

Add random.sample()
üst e1172588
......@@ -943,7 +943,7 @@ property is O(lg~n). (See
\url{http://www.nist.gov/dads/HTML/priorityque.html} for more
information about the priority queue data structure.)
The Python \module{heapq} module provides \function{heappush()} and
The \module{heapq} module provides \function{heappush()} and
\function{heappop()} functions for adding and removing items while
maintaining the heap property on top of some other mutable Python
sequence type. For example:
......@@ -1000,6 +1000,31 @@ your character data handler and therefore faster performance. Setting
the parser object's \member{buffer_text} attribute to \constant{True}
will enable buffering.
\item The \function{sample(\var{population}, \var{k})} function was
added to the \module{random} module. \var{population} is a sequence
containing the elements of a population, and \function{sample()}
chooses \var{k} elements from the population without replacing chosen
elements. \var{k} can be any value up to \code{len(\var{population})}.
For example:
\begin{verbatim}
>>> pop = range(6) ; pop
[0, 1, 2, 3, 4, 5]
>>> random.sample(pop, 3) # Choose three elements
[0, 4, 3]
>>> random.sample(pop, 6) # Choose all six elements
[4, 5, 0, 3, 2, 1]
>>> random.sample(pop, 6) # Choose six again
[4, 2, 3, 0, 5, 1]
>>> random.sample(pop, 7) # Can't choose more than six
Traceback (most recent call last):
File ``<stdin>'', line 1, in ?
File ``/home/amk/src/sf/python/dist/src/Lib/random.py'', line 396, in sample
raise ValueError, ``sample larger than population''
ValueError: sample larger than population
>>>
\end{verbatim}
\item The \module{readline} module also gained a number of new
functions: \function{get_history_item()},
\function{get_current_history_length()}, and \function{redisplay()}.
......@@ -1338,7 +1363,42 @@ under ``python -O'' in earlier versions of Python.
%======================================================================
\section{Porting to Python 2.3}
XXX write this
This section lists changes that may actually require changes to your code:
\begin{itemize}
\item \keyword{yield} is now always a keyword; if it's used as a
variable name in your code, a different name must be chosen.
\item You can no longer disable assertions by assigning to \code{__debug__}.
\item Using \code{None} as a variable name will now result in a
\exception{SyntaxWarning} warning.
\item Names of extension types defined by the modules included with
Python now contain the module and a \samp{.} in front of the type
name.
\item For strings \var{X} and \var{Y}, \code{\var{X} in \var{Y}} now works
if \var{X} is more than one character long.
\item The Distutils \function{setup()} function has gained various new
keyword arguments such as \samp{depends}. Old versions of the
Distutils will abort if passed unknown keywords. The fix is to check
for the presence of the new \function{get_distutil_options()} function
in your \file{setup.py} if you want to only support the new keywords
with a version of the Distutils that supports them:
\begin{verbatim}
from distutils import core
kw = {'sources': 'foo.c', ...}
if hasattr(core, 'get_distutil_options'):
kw['depends'] = ['foo.h']
ext = Extension(**kw)
\end{verbatim}
\end{itemize}
%======================================================================
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment