mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Expand the groupby() example to:
* show that it is typically used with sorted data, * highlight commonalities with SQL's groupby and Unix's uniq, * demonstrate valid uses for the default identity function, * add some excitement by suggesting the range of possibilities.
This commit is contained in:
parent
1f84ed0d8a
commit
feb78c94fa
1 changed files with 15 additions and 0 deletions
|
@ -294,6 +294,21 @@ return consecutive runs of odd or even numbers.
|
||||||
>>>
|
>>>
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
Like its SQL counterpart, \function{groupby()} is typically used with
|
||||||
|
sorted input. The logic for \function{groupby()} is similar to the
|
||||||
|
\UNIX{} \code{uniq} filter which makes it handy for eliminating,
|
||||||
|
counting, or identifying duplicate elements:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
>>> word = 'abracadabra'
|
||||||
|
>>> [k for k, g in groupby(list.sorted(word))]
|
||||||
|
['a', 'b', 'c', 'd', 'r']
|
||||||
|
>>> [(k, len(list(g))) for k, g in groupby(list.sorted(word))]
|
||||||
|
[('a', 5), ('b', 2), ('c', 1), ('d', 1), ('r', 2)]
|
||||||
|
>>> [k for k, g in groupby(list.sorted(word)) if len(list(g)) > 1]
|
||||||
|
['a', 'b', 'r']
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
\item A new \function{getsid()} function was added to the
|
\item A new \function{getsid()} function was added to the
|
||||||
\module{posix} module that underlies the \module{os} module.
|
\module{posix} module that underlies the \module{os} module.
|
||||||
(Contributed by J. Raynor.)
|
(Contributed by J. Raynor.)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue