[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