mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Document itertools.product().
This commit is contained in:
parent
fb0742fe4f
commit
c5705a823b
2 changed files with 26 additions and 0 deletions
|
@ -302,6 +302,29 @@ loops that truncate the stream.
|
||||||
|
|
||||||
.. versionadded:: 2.6
|
.. versionadded:: 2.6
|
||||||
|
|
||||||
|
.. function:: product(*iterables)
|
||||||
|
|
||||||
|
Cartesian product of input iterables.
|
||||||
|
|
||||||
|
Equivalent to nested for-loops in a generator expression. For example,
|
||||||
|
``product(A, B)`` returns the same as ``((x,y) for x in A for y in B)``.
|
||||||
|
|
||||||
|
The leftmost iterators are in the outermost for-loop, so the output tuples
|
||||||
|
cycle in a manner similar to an odometer (with the rightmost element
|
||||||
|
changing on every iteration).
|
||||||
|
|
||||||
|
Equivalent to (but without building the entire result in memory)::
|
||||||
|
|
||||||
|
def product(*args):
|
||||||
|
pools = map(tuple, args)
|
||||||
|
if pools:
|
||||||
|
result = [[]]
|
||||||
|
for pool in pools:
|
||||||
|
result = [x+[y] for x in result for y in pool]
|
||||||
|
for prod in result:
|
||||||
|
yield tuple(prod)
|
||||||
|
|
||||||
|
.. versionadded:: 2.6
|
||||||
|
|
||||||
.. function:: repeat(object[, times])
|
.. function:: repeat(object[, times])
|
||||||
|
|
||||||
|
|
|
@ -635,6 +635,9 @@ Library
|
||||||
- itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised
|
- itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised
|
||||||
an OverflowError. Now, automatically shifts from ints to longs.
|
an OverflowError. Now, automatically shifts from ints to longs.
|
||||||
|
|
||||||
|
- Added itertools.product() which forms the Cartesian product of
|
||||||
|
the input iterables.
|
||||||
|
|
||||||
- Patch #1541463: optimize performance of cgi.FieldStorage operations.
|
- Patch #1541463: optimize performance of cgi.FieldStorage operations.
|
||||||
|
|
||||||
- Decimal is fully updated to the latest Decimal Specification (v1.66).
|
- Decimal is fully updated to the latest Decimal Specification (v1.66).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue