📜  删除连续重复python(1)

📅  最后修改于: 2023-12-03 15:36:56.967000             🧑  作者: Mango

删除连续重复的Python

在处理数据的时候,经常会遇到需要删除连续重复的情况。Python提供了不同的方法实现这一目的。本文将介绍常用的几种方法及其优缺点。

方法一:使用循环

最简单、最直观的方法就是使用循环。具体实现如下:

def remove_duplicates(input_list):
    result = []
    for item in input_list:
        if len(result) == 0 or item != result[-1]:
            result.append(item)
    return result

此方法的思路是遍历input_list,如果当前元素不等于result列表的最后一个元素,就将其加入到result。这种方法的时间复杂度为O(n),其中n是input_list的长度。

此方法的优点是简单易懂,缺点是效率较低,特别是当input_list很长时。

方法二:使用集合

另一种方法是使用集合。集合是Python中去重的一种数据类型,具体实现如下:

def remove_duplicates(input_list):
    return list(set(input_list))

此方法的思路是将input_list转换成集合类型,去除掉其中的重复元素,再将结果转换回列表类型。这种方法的时间复杂度为O(n),其中n是input_list的长度。

此方法的优点是简单、高效,缺点是不保留原有列表的顺序。

方法三:使用itertools模块

Python的itertools模块提供了很多实用的迭代器,其中就包括用于去重的迭代器。具体实现如下:

import itertools

def remove_duplicates(input_list):
    return [k for k, g in itertools.groupby(input_list)]

此方法的思路是使用itertools.groupby迭代器,将input_list中连续重复的元素分组,然后只保留每组的第一个元素。这种方法的时间复杂度为O(n),其中n是input_list的长度。

此方法的优点是简单、高效,同时保留原有列表的顺序。

总结

本文介绍了三种常用的方法来删除连续重复的Python。其中,循环方法简单易懂但效率较低,集合方法简单高效但不保留原有顺序,使用itertools模块的方法简单高效并且保留原有顺序。根据实际需求,选择不同的方法即可。