Раз ты удаляешь элементы из массива, значит надо двигаться от конца массива к его началу. И лучше по индексам, а не по элементам.
for i in range(len(array), -1, -1):
if len(array[i]) <= 2:
del array[i]
Если же делать в стиле предложенного втором вопроса варианта, то эффективнее будет:
array = [array[i] for i in range(len(array)) if len(array[i]) >= 2]