On 12/01/2011 12.15, Daniele Varrazzo wrote: > On Wed, 12 Jan 2011 12:02:57 +0100, lordkrandel<lordkran...@gmail.com> > wrote: >> for n, label in map( lambda k: ( factor**k[0], k[1] ), >> enumerate(labels,1) ): > > Forse sarebbe meglio > for i, label in enumerate(labels, 1): > n = factor ** i > ...
M'ha preso un evidente attacco di oneliner-ite >> return ('%.' + str(precision) + 'lf %s') % (bytes * factor / n, label) > > potrebbe essere scritto: > return ('%.*lf %s') % (precision, bytes * factor / n, label) # Wow! Grazie!!! Quante cose s'imparano (leggendo al posto giusto). Tested! # Ora è molto più carino e pythoneggiante :) def f( bytes, factor, labels, precision ): for i, label in enumerate(labels,1): n = factor ** i if (bytes < n) or (label == labels[-1]): return ('%.*lf %s') % (precision, bytes * factor / n, label) def f_test(): for x in range(22): y = 512*(10**x) print f(y, 1024, ('bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'), 4) print ' ', f(y, 1000, ('bytes', 'KB', 'MB', 'GB', 'TB', 'PB' ), 2) f_test() -- Wyrmskull _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python