@@ -683,26 +683,26 @@ which incur interpreter overhead.
683683 s = list(iterable)
684684 return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
685685
686- def unique_everseen(iterable, key=None):
687- "List unique elements, preserving order. Remember all elements ever seen."
688- # unique_everseen('AAAABBBCCDAABBB') --> A B C D
689- # unique_everseen('ABBCcAD', str.lower) --> A B C D
690- seen = set()
691- seen_add = seen.add
692- if key is None:
693- for element in iterable:
694- if element not in seen:
695- seen_add(element)
696- yield element
697- else:
698- for element in iterable:
699- k = key(element)
700- if k not in seen:
701- seen_add(k)
702- yield element
703-
704- def unique_justseen(iterable, key=None):
705- "List unique elements, preserving order. Remember only the element just seen."
706- # unique_justseen('AAAABBBCCDAABBB') --> A B C D A B
707- # unique_justseen('ABBCcAD', str.lower) --> A B C A D
708- return map(next, map(itemgetter(1), groupby(iterable, key)))
686+ def unique_everseen(iterable, key=None):
687+ "List unique elements, preserving order. Remember all elements ever seen."
688+ # unique_everseen('AAAABBBCCDAABBB') --> A B C D
689+ # unique_everseen('ABBCcAD', str.lower) --> A B C D
690+ seen = set()
691+ seen_add = seen.add
692+ if key is None:
693+ for element in iterable:
694+ if element not in seen:
695+ seen_add(element)
696+ yield element
697+ else:
698+ for element in iterable:
699+ k = key(element)
700+ if k not in seen:
701+ seen_add(k)
702+ yield element
703+
704+ def unique_justseen(iterable, key=None):
705+ "List unique elements, preserving order. Remember only the element just seen."
706+ # unique_justseen('AAAABBBCCDAABBB') --> A B C D A B
707+ # unique_justseen('ABBCcAD', str.lower) --> A B C A D
708+ return map(next, map(itemgetter(1), groupby(iterable, key)))
0 commit comments