Python列表中快速移除连续重复元素的最优方法
移除Python列表中连续重复元素的简洁高效实现方法
这里提供两种更简洁、高效的实现方式,解决你手动循环中末尾元素处理繁琐、大数据量表现一般的问题:
方法一:利用itertools.groupby(推荐)
Python标准库中的itertools.groupby专门用来处理连续重复元素的分组,代码简洁且效率极高,适合大数据量场景:
from itertools import groupby myList = [1, 2, 3, 3, 2, 4, 4, 1, 4] result = [key for key, _ in groupby(myList)] print(result) # 输出: [1, 2, 3, 2, 4, 1, 4]
groupby会遍历列表,将连续相同的元素归为一个分组,我们只需要提取每个分组的key(即元素本身),就能得到去重后的列表。它基于迭代器实现,内存占用极低,大数据量下的性能表现远优于手动索引循环。
方法二:优化手动循环写法
如果你不想导入外部库,可以优化原有循环逻辑,避免单独处理末尾元素,提升代码可读性:
myList = [1, 2, 3, 3, 2, 4, 4, 1, 4] result = [] prev_item = None for item in myList: if item != prev_item: result.append(item) prev_item = item print(result) # 输出: [1, 2, 3, 2, 4, 1, 4]
这种写法通过记录上一个遍历的元素,直接遍历整个列表,无需处理索引和单独判断末尾元素,逻辑更清晰,性能和原生循环持平,但代码简洁度大幅提升。
内容的提问来源于stack exchange,提问作者Chris_abc
相关产品推荐
相关产品推荐

