diff options
author | Raymond Hettinger <python@rcn.com> | 2010-11-06 00:06:14 +0000 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2010-11-06 00:06:14 +0000 |
commit | 0d6fa4da49a65b278173e7ed779f1c5aa7e6dbbc (patch) | |
tree | 22be5a25e8280eb48f030b72b0c53153a11d2170 | |
parent | e679a3702414570b022985b69043d0d684bb97cc (diff) | |
download | cpython-git-0d6fa4da49a65b278173e7ed779f1c5aa7e6dbbc.tar.gz |
Document key-functions in the glossary.
-rw-r--r-- | Doc/glossary.rst | 20 | ||||
-rw-r--r-- | Doc/howto/sorting.rst | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/Doc/glossary.rst b/Doc/glossary.rst index 707091841b..24bbb378ea 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -362,6 +362,26 @@ Glossary value is assigned. ``**`` is used to accept or pass a dictionary of keyword arguments. See :term:`argument`. + key function + A key function or collation function is a callable that returns a value + used for sorting or ordering. For example, :func:`locale.strxfrm` is + used to produce a sort key that is aware of locale specific sort + conventions. + + A number of tools in Python accept key functions to control how elements + are ordered or grouped. They include :func:`min`, :func:`max`, + :func:`sorted`, :meth:`list.sort`, :func:`heapq.nsmallest`, + :func:`heapq.nlargest`, and :func:`itertools.groupby`. + + There are several ways to create a key function. For example. the + :meth:`str.lower` method can serve as a key function for case insensitive + sorts. Alternatively, an ad-hoc key function can be built from a + :keyword:`lambda` expression such as ``lambda r: (r[0], r[2])``. Also, + the :mod:`operator` module provides three key function constuctors: + :func:`~operator.attrgetter`, :func:`~operator.itemgetter`, and + :func:`~operator.methodcaller`. See the :ref:`sorting-howto` for + examples of how to create and use key functions. + lambda An anonymous inline function consisting of a single :term:`expression` which is evaluated when the function is called. The syntax to create diff --git a/Doc/howto/sorting.rst b/Doc/howto/sorting.rst index 79008a7322..5acd405ff0 100644 --- a/Doc/howto/sorting.rst +++ b/Doc/howto/sorting.rst @@ -1,3 +1,5 @@ +.. _sorting-howto: + Sorting HOW TO ************** |