Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f03f7c75
Commit
f03f7c75
authored
Aug 09, 2016
by
Zachary Ware
Browse files
Options
Browse Files
Download
Plain Diff
Closes #27204: Merge with 3.5
parents
1aa913e1
378a1d77
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
24 deletions
+29
-24
Doc/howto/functional.rst
Doc/howto/functional.rst
+1
-1
Doc/howto/ipaddress.rst
Doc/howto/ipaddress.rst
+4
-5
Doc/howto/sorting.rst
Doc/howto/sorting.rst
+24
-18
No files found.
Doc/howto/functional.rst
View file @
f03f7c75
...
...
@@ -1040,7 +1040,7 @@ If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up all
elements of the iterable. This case is so common that there's a special
built-in called :func:`sum` to compute it:
>>> import functools
>>> import functools
, operator
>>> functools.reduce(operator.add, [1,2,3,4], 0)
10
>>> sum([1,2,3,4])
...
...
Doc/howto/ipaddress.rst
View file @
f03f7c75
.. testsetup::
import ipaddress
.. _ipaddress-howto:
***************************************
...
...
@@ -49,11 +53,6 @@ to use the :func:`ipaddress.ip_address` factory function, which automatically
determines whether to create an IPv4 or IPv6 address based on the passed in
value:
.. testsetup::
>>> import ipaddress
::
>>> ipaddress.ip_address('192.0.2.1')
IPv4Address('192.0.2.1')
>>> ipaddress.ip_address('2001:DB8::1')
...
...
Doc/howto/sorting.rst
View file @
f03f7c75
...
...
@@ -58,28 +58,28 @@ A common pattern is to sort complex objects using some of the object's indices
as keys. For example:
>>> student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
...
('john', 'A', 15),
...
('jane', 'B', 12),
...
('dave', 'B', 10),
...
]
>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
The same technique works for objects with named attributes. For example:
>>> class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
...
def __init__(self, name, grade, age):
...
self.name = name
...
self.grade = grade
...
self.age = age
...
def __repr__(self):
...
return repr((self.name, self.grade, self.age))
>>> student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
...
Student('john', 'A', 15),
...
Student('jane', 'B', 12),
...
Student('dave', 'B', 10),
...
]
>>> sorted(student_objects, key=lambda student: student.age) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
...
...
@@ -208,15 +208,15 @@ return a negative value for less-than, return zero if they are equal, or return
a positive value for greater-than. For example, we can do:
>>> def numeric_compare(x, y):
return x - y
>>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare)
...
return x - y
>>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare)
# doctest: +SKIP
[1, 2, 3, 4, 5]
Or you can reverse the order of comparison with:
>>> def reverse_numeric(x, y):
return y - x
>>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric)
...
return y - x
>>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric)
# doctest: +SKIP
[5, 4, 3, 2, 1]
When porting code from Python 2.x to 3.x, the situation can arise when you have
...
...
@@ -244,6 +244,12 @@ function. The following wrapper makes that easy to do::
To convert to a key function, just wrap the old comparison function:
.. testsetup::
from functools import cmp_to_key
.. doctest::
>>> sorted([5, 2, 4, 1, 3], key=cmp_to_key(reverse_numeric))
[5, 4, 3, 2, 1]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment