Найти - Пользователи
Полная версия: Обрезание строки.
Начало » Python для экспертов » Обрезание строки.
1
Igorek
Здравствуйте
Есть некоторый текст, который необходимо обрезать (начиная 400 символа искать вхождение “. ” - точка пробел).
Вот что я написал

MAX_CHAR=400
def l_desc(list):
“”“
Trim description (desc) do MAX_CHAR .
”“”
st = string.find(list ,“. ”, MAX_CHAR)
if st>MAX_CHAR:
list = list
return list


Но это не всегда срабатывает. Если можно подскажите как правильнее сделать
pythonwin
1) не используй имена стандартных классов как имена переменных - например list
2) модуль string вроде уже устарел
s=' '.join([str(x) for x in xrange(789)])
s+='. ne nuzhno'
def l_desc1(str1, MAX_CHAR=400):
    position = str1.find('. ', MAX_CHAR)
    if position>-1:
        return str1[:position]
print l_desc1(s)
если применить ФП можно записать ещё короче - в две строки
Igorek
Что есть ФП и где можно почитать ?
Igorek
Что-то вроде этого:

test = lambda x: x

Это конечно здорово, но у меня полная функция выглядит так

def l_desc(desc):
“”“
# Trim description (desc) do MAX_LITLE_DESC_CHAR .
# Warning: This module is not working correctly ! Need edit !
”“”
i = 0
try:
while i<desc.count():
st = string.find(desc.desc ,“. ”, MAX_LITLE_DESC_CHAR)
if st>-1:
desc.desc = “%s…” % (desc.desc)
i = i + 1
except TypeError:
return desc
return desc


Сейчас попробую заменить на:

l_desc = map(lambda x: x,x.count())
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