Como podemos manter apenas elementos que possuem três ou mais elementos em cada lado? Por exemplo:
[1, 2, 3, 4] => [1, 4]
O
1
tem três elementos à sua direita, então o mantemos.O
2
e3
cada um tem apenas um ou dois elementos em cada lado, então os removemos.O
4
tem três elementos à sua esquerda, então o mantemos.
Mais exemplos:
[] => []
[1] => []
[1, 2] => []
[1, 2, 3] => []
[1, 2, 3, 4] => [1, 4]
[1, 2, 3, 4, 5] => [1, 2, 4, 5]
[1, 2, 3, 4, 5, 6] => [1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7] => [1, 2, 3, 4, 5, 6, 7]
Editar: aqui está uma maneira ruim, caso alguém realmente se importe que eu não tenha fornecido nenhuma "tentativa":
L = [1, 2, 3, 4]
N = len(L)
for i in reversed(range(N)):
left = i
right = N - 1 - i
if not (left >= 3 or right >= 3):
L.pop(i)
print(L)
Simplesmente isso?
Impressões:
Baseado no código de Julien para a saída do teste.