📜  Python|连续重复列表中的所有元素删除

📅  最后修改于: 2022-05-13 01:55:35.164000             🧑  作者: Mango

Python|连续重复列表中的所有元素删除

有时,在使用Python列表时,过滤列表以删除重复项可能会出现问题。之前已经讨论过这个问题的解决方案。但有时,我们可能会遇到一个问题,即如果连续出现超过 1 个,我们需要删除重复项和元素本身。这类问题也可能出现在日常编程和其他应用程序中。让我们讨论一下可以执行此任务的简写。

方法:使用列表理解 + groupby() + sum()
可以使用上述功能的组合来执行此任务。第一步是使用groupby()将元素分组为重复项,然后如果它们出现超过 0 次,则删除它们,即仅包含那些出现一次的元素。这个计数任务由sum()处理

# Python3 code to demonstrate working of
# Consecutive duplicates all elements deletion in list
# using list comprehension + sum() + groupby()
from itertools import groupby
  
# initialize list
test_list = [1, 1, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 6]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Consecutive duplicates all elements deletion in list
# using list comprehension + sum() + groupby()
res = [i for i, j in groupby(test_list) if sum(1 for x in j) < 2]
  
# printing result
print("List after consecutive duplicates elements deletion : " + str(res))
输出 :
The original list is : [1, 1, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 6]
List after consecutive duplicates elements deletion : [3, 5, 7, 6]