请参阅第10.1.2节中的 Python 文档。Itertools 食谱包含以下食谱:
def unique_justseen(iterable, key=None): "List unique elements, preserving order. Remember only the element just seen." # unique_justseen('AAAABBBCCDAABBB') --> A B C D A B # unique_justseen('ABBCcAD', str.lower) --> A B C A D return map(next, map(operator.itemgetter(1), itertools.groupby(iterable, key)))
在我看来,这是不必要的复杂,因为命令return
可以这样写:
return map(operator.itemgetter(0), itertools.groupby(iterable, key))
这很好用,但也许我错过了一些东西,并且有一个iterable
“官方”版本可以正常工作的例子,但我的没有。
您是否知道这种情况,或者我的方法似乎正确?