#22237: document that sorted() is guaranteed to be stable. Initial patch by Martin Panter.

This commit is contained in:
Ezio Melotti 2014-10-28 12:57:11 +01:00
parent 16e7f97bcb
commit 9b1e92f5a1
2 changed files with 8 additions and 1 deletions

View File

@ -1286,6 +1286,11 @@ are always available. They are listed here in alphabetical order.
Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a
*key* function. *key* function.
The built-in :func:`sorted` function is guaranteed to be stable. A sort is
stable if it guarantees not to change the relative order of elements that
compare equal --- this is helpful for sorting in multiple passes (for
example, sort by department, then by salary grade).
For sorting examples and a brief sorting tutorial, see `Sorting HowTo For sorting examples and a brief sorting tutorial, see `Sorting HowTo
<http://wiki.python.org/moin/HowTo/Sorting/>`_\. <http://wiki.python.org/moin/HowTo/Sorting/>`_\.

View File

@ -123,7 +123,6 @@ pushing all values onto a heap and then popping off the smallest values one at a
time:: time::
>>> def heapsort(iterable): >>> def heapsort(iterable):
... 'Equivalent to sorted(iterable)'
... h = [] ... h = []
... for value in iterable: ... for value in iterable:
... heappush(h, value) ... heappush(h, value)
@ -132,6 +131,9 @@ time::
>>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0]) >>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this
implementation is not stable.
Heap elements can be tuples. This is useful for assigning comparison values Heap elements can be tuples. This is useful for assigning comparison values
(such as task priorities) alongside the main record being tracked:: (such as task priorities) alongside the main record being tracked::