[python] Deleni retezce

Stefan Oravec stefan.oravec na realtime.sk
Úterý Září 5 16:07:08 CEST 2006


ako som to ja pochopil tak domotal :D

def foo(text, treshold):
     result = []
     buff = []
     for word in text.split():
         if len(' '.join(buff + [word])) > treshold:
             result.append(' '.join(buff))
             buff = [word]
         else:
             buff.append(word)
     result.append(' '.join(buff))
     return result

if __name__ == '__main__':
     text = '''foo bar
     johoho'''
     print text.split()
     print foo(text, 10)
     print foo(text, 5)

S.

Quoting Petr Vaněk <petr at scribus.info>:

> Dne úterý 05 září 2006 14:39 Martin Jedlička napsal(a):
>> Zdravim, mel bych takovy dotaz. Potreboval bych vedet, jak dlouhy
>> retezec rozdelim na mensi (vlozim enter misto mezery, pokud je retezec
>> delsi jak nejaka delka). Mam proste dlouhy string a potreboval bych ho
>> rozdelit na na vice stringu oddelene entrem. Enter vkladat vzdy, kdy je
>> retezec napr. delsi nez 100 znaku. Zacal jsem tak, ze spocitam pocet
>> slov a znaku retezce, ale nevim, jak dal (jak spravne vkladat ty entery).
>
>>>> s = '''foo bar
> ... jambadadam'''
>>>> s
> 'foo bar\njambadadam'
>>>> l = s.split()
>>>> l
> ['foo', 'bar', 'jambadadam']
>>>> n = '\n'.join(l)
>>>> n
> 'foo\nbar\njambadadam'
>>>> print n
> foo
> bar
> jambadadam
>
> pokud vyzadujes, aby se pred tim zkontrolovala delka reteze, pak
> if len(s) > 100:
>     l = s.split()
>
> ale mozna jsem se domotal v zadani ;)
>
> neni treba dekovat, mam rad bilou cokoladu...
> p.
>



--
application/x-person


Další informace o konferenci Python