You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何移除列表中的连续重复元素?

删除列表中的连续重复项

Hey there! 我懂你要的是只移除连续重复的元素,而不是把所有重复项都清掉——你之前用的list(OrderedDict.fromkeys(data1))会把所有重复出现的元素都去重,当然不符合需求啦。

这里给你两种简单的实现方式:

方法1:遍历判断法

这是最直观的思路:我们维护一个结果列表,遍历原列表时,只把和结果列表最后一个元素不同的项加进去(第一个元素直接加入)。

list1 = ["10-31", "19-45", "19-45", "64-01", "10-31", "19-45", "16-17"]
list2 = []

for item in list1:
    # 如果结果列表为空,或者当前元素和最后一个元素不同,就添加
    if not list2 or item != list2[-1]:
        list2.append(item)

print(list2)
# 输出: ['10-31', '19-45', '64-01', '10-31', '19-45', '16-17']

方法2:列表推导式简化版

如果喜欢更简洁的写法,可以用enumerate拿到元素的索引,对比当前元素和前一个元素是否不同:

list1 = ["10-31", "19-45", "19-45", "64-01", "10-31", "19-45", "16-17"]
list2 = [item for idx, item in enumerate(list1) if idx == 0 or item != list1[idx-1]]

print(list2)
# 输出和上面一致

这两种方法都能精准实现你的需求:只去掉连续重复的项,非连续的重复项会被保留下来。

内容的提问来源于stack exchange,提问作者David Grigoryev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:47:15