Nick Coghlan <[EMAIL PROTECTED]> writes:
> That last sentence isn't quite true. With an appropriate second
> argument, sum can be used to sum any sequence (even one containing
> strings):
>
> Py> class additive_identity(object):
> ... def __add__(self, other):
> ... return other
> ...
==> setup
> Py> sum(["a"] * 5, additive_identity())
> 'aaaaa'
>
> This is fairly abusive of sum, though :)
Python 2.5a0 (#85, Jan 27 2005, 17:41:04)
[GCC 2.95.3 20010125 (prerelease, propolice)] on openbsd3
Type "copyright", "credits" or "license()" for more information.
IDLE 1.2a0
Py> t = timeit.Timer("sum(('a','bcd', 'e'), ai())", setup)
Py> t.repeat()
[3.3861918449401855, 3.2027261257171631, 3.1891348361968994]
Py> t2 = timeit.Timer("''.join(('a','bcd', 'e'))")
Py> t2.repeat()
[1.1249339580535889, 1.1143810749053955, 1.0990779399871826]
Py> t3 = timeit.Timer("'a' + 'bcd' + 'e'")
Py> t3.repeat()
[0.10233211517333984, 0.099857091903686523, 0.10514688491821289]
--
KBK
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com