summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/glossary.rst2
-rw-r--r--Doc/library/collections.rst2
-rw-r--r--Doc/library/itertools.rst6
-rw-r--r--Lib/test/test_itertools.py9
4 files changed, 11 insertions, 8 deletions
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index f8d0e67..34e4858 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -393,7 +393,7 @@ Glossary
also :term:`immutable`.
named tuple
- Any tuple subclass whose indexable elements are also accessible using
+ Any tuple-like class whose indexable elements are also accessible using
named attributes (for example, :func:`time.localtime` returns a
tuple-like object where the *year* is accessible either with an
index such as ``t[0]`` or with a named attribute like ``t.tm_year``).
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 41b4eba..32cc639 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -206,7 +206,7 @@ For example::
.. method:: most_common([n])
Return a list of the *n* most common elements and their counts from the
- most common to the least. If *n* not specified, :func:`most_common`
+ most common to the least. If *n* is not specified, :func:`most_common`
returns *all* elements in the counter. Elements with equal counts are
ordered arbitrarily::
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 618cf7d..634b909 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -290,7 +290,7 @@ loops that truncate the stream.
class groupby(object):
# [k for k, g in groupby('AAAABBBCCDAABBB')] --> A B C D A B
- # [(list(g)) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D
+ # [list(g) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D
def __init__(self, iterable, key=None):
if key is None:
key = lambda x: x
@@ -591,8 +591,8 @@ which incur interpreter overhead.
return map(function, count(start))
def nth(iterable, n):
- "Returns the nth item or empty list"
- return list(islice(iterable, n, n+1))
+ "Returns the nth item or None"
+ return next(islice(iterable, n, None), None)
def quantify(iterable, pred=bool):
"Count how many times the predicate is true"
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index f69ad26..50c3402 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -1371,8 +1371,8 @@ Samuele
... return map(function, count(start))
>>> def nth(iterable, n):
-... "Returns the nth item or empty list"
-... return list(islice(iterable, n, n+1))
+... "Returns the nth item or None"
+... return next(islice(iterable, n, None), None)
>>> def quantify(iterable, pred=bool):
... "Count how many times the predicate is true"
@@ -1469,7 +1469,10 @@ perform as purported.
[0, 2, 4, 6]
>>> nth('abcde', 3)
-['d']
+'d'
+
+>>> nth('abcde', 9) is None
+True
>>> quantify(range(99), lambda x: x%2==0)
50