Уведомления

Группа в Telegram: @pythonsu

#1 Июль 22, 2012 10:10:17

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

привет.
есть строка

a=u'здесь очень длинный текст который надо разбить'
как бы мне его разделить в список, чтобы каждый элемент списка не был больше 23, и слова не переносились
т.е. получить
list=[u'здесь очень длинный', u'текст который надо', u'разбить']

Офлайн

#2 Июль 22, 2012 10:42:23

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

a = 'We use cookies to ensure that we give you the best experience on our website. We also use cookies to ensure we show you advertising that is relevant to you. If you continue without changing your settings, we\'ll assume that you are happy to receive all cookies on the BBC website. However, if you would like to, you can change your cookie settings at any time.'
result = []
bufstr = ''
 
for dig in a:
    bufstr += dig
    if len(bufstr) > 23:
        to_append, bufstr = bufstr.rsplit(' ', 1)
        result.append(to_append)
 
result.append(bufstr)
print map(len, result), result

[17, 23, 22, 20, 21, 23, 19, 20, 21, 22, 21, 22, 16, 21, 23, 23, 9] ['We use cookies to', 'ensure that we give you', 'the best experience on', 'our website. We also', 'use cookies to ensure', 'we show you advertising', 'that is relevant to', 'you. If you continue', 'without changing your', "settings, we'll assume", 'that you are happy to', 'receive all cookies on', 'the BBC website.', 'However, if you would', 'like to, you can change', 'your cookie settings at', 'any time.']

В фреймворках существуют специальные функции для таких вещей.



Отредактировано fata1ex (Июль 22, 2012 10:44:06)

Офлайн

#3 Июль 22, 2012 11:20:15

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

to_append, bufstr = bufstr.rsplit(' ', 1)
а что значит параметр 1?

Офлайн

#4 Июль 22, 2012 11:25:21

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

Офлайн

#5 Июль 23, 2012 02:36:11

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

А чем модуль textwrap не угодил?



Офлайн

#6 Июль 23, 2012 16:47:49

Virtuos86
От:
Зарегистрирован: 2010-11-17
Сообщения: 33
Репутация: +  1  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

наш пострел везде поспел :)



Офлайн

#7 Июль 23, 2012 17:24:34

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

разбить строку в список, алгоритм

Virtuos86
наш пострел везде поспел :)
т.е.?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version