Форум сайта python.su
Да я не к этому. :-)
Где-то полтора года назад я написал на pydev.ru небольшую недостатью про приёмы функционального программирования в питоне. j2a, кажется, попытался объяснить мне, что не стоит использовать это в коде, ибо не читаемо… Но у него ничего не получилось. А жаль.
Так что я только о том, что оно несомненно красиво, но в реале использовать нужно очень и очень осторожно и ограниченно. Ну и пояснять не забывать.
Офлайн
Ed,
print " ".join([w.replace(" ", "") for w in re.split(r"(\S{2,})", line)])
Офлайн
Мне нравится ход ваших мыслей :). Но этот вариант оставляет лишний пробел между “вас” и “всех”.
Кроме того нужно добавить import re в код.
Офлайн
Edну можно еще вставить в конце .replace(“ ”, “ ”), но это займет столько много места.. :) думаю, можно еще голову поломать над регекспом, чтобы убрать двойные пробелы (которые, по секрету говоря, будут вылезать между каждыми двумя “нормальными” словами).
Мне нравится ход ваших мыслей smile. Но этот вариант оставляет лишний пробел между “вас” и “всех”.
Кроме того нужно добавить import re в код.
print " ".join([w.replace(" ", "") for w in re.split(r"(\S{2,})", line) if w.strip()])
Отредактировано (Янв. 8, 2010 23:58:58)
Офлайн
Я тут подумал, что strip() не нужен:
print "".join([s.center(len(s)+(len(s)>1)*2) for s in line.split()]).replace(" ", " ")
Отредактировано (Янв. 9, 2010 00:49:26)
Офлайн
Edбез стрипа в конце лишний пробел )
Я тут подумал, что strip() не нужен:
Офлайн
Ed
PS: A ‘import re’ вы так и не добавили. Так нечестно
__import__('re').split(r"(\S{2,})", line)
Офлайн
Знатное извращение. Ноя думал просто добавить import re; перед кодом. Останется та же одна строчка, только длиннее.
pasaranax: Да, вы правы, остается пробел в конце. Возвращаю обратно.
Офлайн
EdЭто уже как-то не совсем однострочник получается.
добавить import re; перед кодом
Офлайн
EdАга…
Знатное извращение.
EdВся ценность этого прикола в том, что это expression!
Ноя думал просто добавить import re; перед кодом.
Офлайн