mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Fill out the 'Porting' section
Add random.sample()
This commit is contained in:
parent
e1172588e6
commit
8a61f499dc
1 changed files with 62 additions and 2 deletions
|
@ -943,7 +943,7 @@ property is O(lg~n). (See
|
||||||
\url{http://www.nist.gov/dads/HTML/priorityque.html} for more
|
\url{http://www.nist.gov/dads/HTML/priorityque.html} for more
|
||||||
information about the priority queue data structure.)
|
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
|
\function{heappop()} functions for adding and removing items while
|
||||||
maintaining the heap property on top of some other mutable Python
|
maintaining the heap property on top of some other mutable Python
|
||||||
sequence type. For example:
|
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}
|
the parser object's \member{buffer_text} attribute to \constant{True}
|
||||||
will enable buffering.
|
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
|
\item The \module{readline} module also gained a number of new
|
||||||
functions: \function{get_history_item()},
|
functions: \function{get_history_item()},
|
||||||
\function{get_current_history_length()}, and \function{redisplay()}.
|
\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}
|
\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}
|
||||||
|
|
||||||
|
|
||||||
%======================================================================
|
%======================================================================
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue