首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法使用itertools groupby删除列表中相邻的重复项,但保留原始索引?

是的,可以使用itertools.groupby来删除列表中相邻的重复项,并保留原始索引。itertools.groupby函数可以将相邻的元素分组,并返回一个迭代器,其中每个元素都是一个键和一个迭代器,迭代器包含相同的键的元素。

下面是一个示例代码,演示如何使用itertools.groupby来实现这个功能:

代码语言:txt
复制
from itertools import groupby

def remove_duplicates_with_index(lst):
    result = []
    for key, group in groupby(enumerate(lst), lambda x: x[1]):
        indices = [index for index, _ in group]
        result.append(lst[indices[0]])
    return result

# 示例用法
lst = [1, 1, 2, 3, 3, 3, 4, 5, 5]
result = remove_duplicates_with_index(lst)
print(result)  # 输出: [1, 2, 3, 4, 5]

在上面的示例中,remove_duplicates_with_index函数接受一个列表作为输入,并使用enumerate函数为列表中的每个元素添加索引。然后,使用itertools.groupby函数将相邻的重复元素分组。最后,我们提取每个分组的第一个索引,并根据索引从原始列表中获取对应的元素,将其添加到结果列表中。

这种方法可以删除列表中相邻的重复项,并保留原始索引。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券