0

我要做的是获取一个列表并根据相邻列表成员的比较对其进行过滤。即,像这样

filter(lambda x,y: x != y, someList)

摆脱彼此相邻的重复元素。我可以很容易地以其他方式实现这一点,但开始尝试使用列表缩减/过滤器来实现它,并且我很固执地想要继续尝试直到我弄明白为止。我在 python 方面仍然没有那么丰富的经验,但我觉得我缺少这样的东西。

谢谢!

4

2 回答 2

4
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 imap(next, imap(itemgetter(1), groupby(iterable, key)))

资料来源: Python 文档9.7.2。食谱

高效循环有很多很棒的东西itertools

于 2013-02-22T05:19:27.110 回答
3

对于连续元素(重复元素),则:

>>> from itertools import groupby
>>> items = 'aaaabbdeeeeefg'
>>> ''.join(k for k, g in groupby(items))
'abdefg'
于 2013-02-22T05:20:57.673 回答