Я — эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.
def trim(letter):
SKIPLEAD = object()
SKIPINNE = object()
todelete, stage, skipped = [], SKIPLEAD, 0
for idx, blank in enumerate([x == '' for x in letter]):
if stage == SKIPLEAD:
if blank:
todelete.append(idx)
else:
stage = SKIPINNE
else:
if blank:
skipped += 1
todelete.append(idx)
else:
if 0 < skipped < 3:
todelete = todelete[0:-skipped]
return [letter[idx] for idx in set(range(0, len(letter))) - set(todelete)]