For some reason rst docs like an initial 3 space indent.

This commit is contained in:
Raymond Hettinger 2009-03-23 22:42:28 +00:00
parent 5254c04aeb
commit fd88ea7db2

View file

@ -683,26 +683,26 @@ which incur interpreter overhead.
s = list(iterable) s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1)) return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
def unique_everseen(iterable, key=None): def unique_everseen(iterable, key=None):
"List unique elements, preserving order. Remember all elements ever seen." "List unique elements, preserving order. Remember all elements ever seen."
# unique_everseen('AAAABBBCCDAABBB') --> A B C D # unique_everseen('AAAABBBCCDAABBB') --> A B C D
# unique_everseen('ABBCcAD', str.lower) --> A B C D # unique_everseen('ABBCcAD', str.lower) --> A B C D
seen = set() seen = set()
seen_add = seen.add seen_add = seen.add
if key is None: if key is None:
for element in iterable: for element in iterable:
if element not in seen: if element not in seen:
seen_add(element) seen_add(element)
yield element yield element
else: else:
for element in iterable: for element in iterable:
k = key(element) k = key(element)
if k not in seen: if k not in seen:
seen_add(k) seen_add(k)
yield element yield element
def unique_justseen(iterable, key=None): def unique_justseen(iterable, key=None):
"List unique elements, preserving order. Remember only the element just seen." "List unique elements, preserving order. Remember only the element just seen."
# unique_justseen('AAAABBBCCDAABBB') --> A B C D A B # unique_justseen('AAAABBBCCDAABBB') --> A B C D A B
# unique_justseen('ABBCcAD', str.lower) --> A B C A D # unique_justseen('ABBCcAD', str.lower) --> A B C A D
return map(next, map(itemgetter(1), groupby(iterable, key))) return map(next, map(itemgetter(1), groupby(iterable, key)))