[python] Prevod stringu na seznam integeru a zpatky

Petr Prikryl PrikrylP na skil.cz
Čtvrtek Září 6 16:15:20 CEST 2007


... a ještě, ten generátor v minulé ukázce se dá napsat
taky jako generátorový výraz, takže jednořádkové řešení
bez map() a navíc efektivnější by se dalo napsat takhle:

s = ', '.join(str(int(m) * 2) for m in s.split(','))
print repr(s)

Tedy za předpokladu, že zpracovává každý prvek zvlášť
(zde násobení celočíselné hodnoty dvěma). Ten převod
řetězce na číslo a zpět vlastně můžu považovat za součást
zpracování onoho prvku, takže pokud to zabstraktním pro
zpracování po prvku, můžu psát:

s2 = ', '.join(zpracuj(m) for m in s.split(','))
print repr(s2)

Ono to chce ale vědět, čeho chci přesně dosáhnout
a jak to bude zapadat do okolního kódu. Navíc nejsem
zrovna příznivcem toho, že jednořádkové řešení je
lepší, než víceřádkové. The Zen of Python říká

    Readability counts.

Kdyby to nebylo Zenové vyjádření, dal bych za to 
vykřičník ;)

pepr


Další informace o konferenci Python