def remove_duplicates(iterable, key=None):
"""
Renvoie un generateur sur un iterable qui enleve tous les elements en double dans une liste, conservant l'ordre."""
seen = set()
seen_add = seen.add
if key is None:
for element in filterfalse(seen.__contains__, iterable):
seen_add(element)
yield element
else:
for element in iterable:
k = key(element)
if k not in seen:
seen_add(k)
yield element
评论列表
文章目录