Python 列表去重:高效去除相邻重复值,保留不相邻重复值
Python 列表去重:高效去除相邻重复值,保留不相邻重复值
在 Python 中,我们经常需要对列表进行去重操作,但有时我们希望保留不相邻的重复值,只去除相邻的重复值。例如,给定一个列表 [1, 2, 2, 3, 4, 4, 4, 5, 6, 6],我们希望得到 [1, 2, 3, 4, 5, 6],即去除相邻的重复值,保留不相邻的重复值。
我们可以通过遍历列表的方式,判断当前元素与下一个元素是否相等,如果相等则删除下一个元素,直到遍历完整个列表。
以下是一个示例代码:
def remove_adjacent_duplicates(lst):
i = 0
while i < len(lst) - 1:
if lst[i] == lst[i+1]:
del lst[i+1]
else:
i += 1
return lst
# 测试代码
lst = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6]
result = remove_adjacent_duplicates(lst)
print(result) # 输出: [1, 2, 3, 4, 5, 6]
在上述代码中,我们使用了一个while循环来遍历列表。在每次循环中,我们检查当前元素和下一个元素是否相等。如果相等,则删除下一个元素;如果不相等,则将索引i自增1,继续检查下一个元素。这样,我们可以保留不相邻重复的值,同时去除相邻重复的值。
希望本文能够帮助您理解如何在 Python 中去除列表中的相邻重复值,同时保留不相邻重复值。
原文地址: https://www.cveoy.top/t/topic/fUzG 著作权归作者所有。请勿转载和采集!