Форум сайта python.su
если в одну строчку всё писать то :)
import re; print "".join([s.center(len(s)+(len(s)>1)*2) for s in line.split()]).replace(" ", " ")
Офлайн
sypper-pit: Да, я именно это и имел в виду. Только не к моему коду этот import re; прибавлять нужно, а к коду pasaranax. В моем re не используется.
Итого что у нас получилось в сухом остатке:
1.print "".join([s.center(len(s)+(len(s)>1)*2) for s in line.split()]).replace(" ", " ").strip()
2.import re;print " ".join([w.replace(" ","") for w in re.split(r"(\S{2,})",line) if w.strip()])
или
3.print " ".join([w.replace(" ","") for w in __import__('re').split(r"(\S{2,})",line) if w.strip()])
Отредактировано (Янв. 11, 2010 15:27:52)
Офлайн
Если ровно расставить пробелы (у меня в pydev автоматом настроено), то получается вот что:
print "".join(map(lambda w:" %s " % w if len(w) > 1 else w, line.split())).replace(" ", " ").strip()
print "".join([s.center(len(s) + (len(s) > 1) * 2) for s in line.split()]).replace(" ", " ").strip()
import re; print " ".join([w.replace(" ", "") for w in re.split("(\S{2,})", line) if w.strip()])
print " ".join([w.replace(" ", "") for w in __import__("re").split("(\S{2,})", line) if w.strip()])
print "".join(map(lambda w:" %s "%w if len(w)>1 else w,line.split())).replace(" "," ").strip()
print "".join([s.center(len(s)+(len(s)>1)*2) for s in line.split()]).replace(" "," ").strip()
import re;print " ".join([w.replace(" ","") for w in re.split("(\S{2,})",line) if w.strip()])
print " ".join([w.replace(" ","") for w in __import__("re").split("(\S{2,})",line) if w.strip()])
Отредактировано (Янв. 11, 2010 18:06:18)
Офлайн