mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
sorting howto: Add clarification on < using __lt__ (#92010)
This commit is contained in:
parent
81120b6754
commit
53ca774497
1 changed files with 4 additions and 1 deletions
|
@ -325,7 +325,7 @@ Odd and Ends
|
||||||
>>> standard_way
|
>>> standard_way
|
||||||
[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]
|
[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]
|
||||||
|
|
||||||
* The sort routines are guaranteed to use :meth:`__lt__` when making comparisons
|
* The sort routines use ``<`` when making comparisons
|
||||||
between two objects. So, it is easy to add a standard sort order to a class by
|
between two objects. So, it is easy to add a standard sort order to a class by
|
||||||
defining an :meth:`__lt__` method:
|
defining an :meth:`__lt__` method:
|
||||||
|
|
||||||
|
@ -335,6 +335,9 @@ Odd and Ends
|
||||||
>>> sorted(student_objects)
|
>>> sorted(student_objects)
|
||||||
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
|
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
|
||||||
|
|
||||||
|
However, note that ``<`` can fall back to using :meth:`__gt__` if
|
||||||
|
:meth:`__lt__` is not implemented (see :func:`object.__lt__`).
|
||||||
|
|
||||||
* Key functions need not depend directly on the objects being sorted. A key
|
* Key functions need not depend directly on the objects being sorted. A key
|
||||||
function can also access external resources. For instance, if the student grades
|
function can also access external resources. For instance, if the student grades
|
||||||
are stored in a dictionary, they can be used to sort a separate list of student
|
are stored in a dictionary, they can be used to sort a separate list of student
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue