a = [1, 2, 3, 3, 3]
a = [1, 1, 2, 2, 2, 1]
our_list = [1, 2, 3, 3, 3]
#идём от конца списка к началу - так удаление повлияет только на уже обработанные элементы списка.
for i in range(len(our_list) - 3, 0, -1):
if our_list[i:i+3] == [ our_list[i] ] * 3: #сравниваем фрагмент списка с повтором элемента трижды
del our_list[i:i+3]
print(our_list)
a = [1, 2, 3, 3, 3, 5, 6, 6, 6]
c = 1
lastOjb = ''
for i in range(len(a)):
if (lastOjb == a[i]):
c+=1
else:
c = 1
lastOjb = a[i]
if (c == 3):
a[i] = ""
a[i-1] = ""
a[i-2] = ""
a = list(filter(('').__ne__, a))
print(a)
a = [1,2,3,3,3,4,5,6,6,6,6,6,3,3]
from itertools import groupby
new_a= []
for _, values in groupby(a):
values = list(values)
if len(values) < 3:
new_a.extend(values)
print(new_a)
[1, 2, 4, 5, 3, 3]