Найти - Пользователи
Полная версия: Склейка нескольких подряд идущих букв
Начало » Python для новичков » Склейка нескольких подряд идущих букв
1 2 3 4
ZZZ
Да я не к этому. :-)

Где-то полтора года назад я написал на pydev.ru небольшую недостатью про приёмы функционального программирования в питоне. j2a, кажется, попытался объяснить мне, что не стоит использовать это в коде, ибо не читаемо… Но у него ничего не получилось. А жаль.
Так что я только о том, что оно несомненно красиво, но в реале использовать нужно очень и очень осторожно и ограниченно. Ну и пояснять не забывать.
pasaranax
Ed,
print " ".join([w.replace(" ", "") for w in re.split(r"(\S{2,})", line)])
Ed
Мне нравится ход ваших мыслей :). Но этот вариант оставляет лишний пробел между “вас” и “всех”.
Кроме того нужно добавить import re в код.
pasaranax
Ed
Мне нравится ход ваших мыслей smile. Но этот вариант оставляет лишний пробел между “вас” и “всех”.
Кроме того нужно добавить import re в код.
ну можно еще вставить в конце .replace(“ ”, “ ”), но это займет столько много места.. :) думаю, можно еще голову поломать над регекспом, чтобы убрать двойные пробелы (которые, по секрету говоря, будут вылезать между каждыми двумя “нормальными” словами).

п.с. все, пофиксил:
print " ".join([w.replace(" ", "") for w in re.split(r"(\S{2,})", line) if w.strip()])
думаю, вариант с регекспами будет сильно медленнее тех, что выше
Ed
Я тут подумал, что strip() не нужен:
print "".join([s.center(len(s)+(len(s)>1)*2) for s in line.split()]).replace("  ", " ")
PS: A ‘import re’ вы так и не добавили. Так нечестно :)
pasaranax
Ed
Я тут подумал, что strip() не нужен:
без стрипа в конце лишний пробел )
ZZZ
Ed
PS: A ‘import re’ вы так и не добавили. Так нечестно
__import__('re').split(r"(\S{2,})", line)
:-)
Ed
Знатное извращение. Ноя думал просто добавить import re; перед кодом. Останется та же одна строчка, только длиннее.
pasaranax: Да, вы правы, остается пробел в конце. Возвращаю обратно.
pasaranax
Ed
добавить import re; перед кодом
Это уже как-то не совсем однострочник получается.
Думаю, из этой задачи врядли можно больше выжать, надо новую )
ZZZ
Ed
Знатное извращение.
Ага…

Ed
Ноя думал просто добавить import re; перед кодом.
Вся ценность этого прикола в том, что это expression!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB