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``).
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
return imap(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"
... return imap(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"
[0, 2, 4, 6]
>>> nth('abcde', 3)
-['d']
+'d'
+
+>>> nth('abcde', 9) is None
+True
>>> quantify(xrange(99), lambda x: x%2==0)
50