On Sep 19, 8:06 am, Neil Cerutti <ne...@norwich.edu> wrote: > On 2012-09-19, Ian Kelly <ian.g.ke...@gmail.com> wrote: > > > It notes in the doc string that it does not work on strings: > > > sum(...) > > sum(sequence[, start]) -> value > > > Returns the sum of a sequence of numbers (NOT strings) plus > > the value of parameter 'start' (which defaults to 0). When > > the sequence is empty, returns start. > > > I think this restriction is mainly for efficiency. sum(['a', > > 'b', 'c', 'd', 'e']) would be the equivalent of 'a' + 'b' + 'c' > > + 'd' + 'e', which is an inefficient way to add together > > strings. You should use ''.join instead: > > While the docstring is still useful, it has diverged from the > documentation a little bit. > > sum(iterable[, start]) > > Sums start and the items of an iterable from left to right and > returns the total. start defaults to 0. The iterable‘s items > are normally numbers, and the start value is not allowed to be > a string. > > For some use cases, there are good alternatives to sum(). The > preferred, fast way to concatenate a sequence of strings is by > calling ''.join(sequence). To add floating point values with > extended precision, see math.fsum(). To concatenate a series of > iterables, consider using itertools.chain(). > > Are iterables and sequences different enough to warrant posting a > bug report? >
Sequences are iterables, so I'd say the docs are technically correct, but maybe I'm misunderstanding what you would be trying to clarify. -- http://mail.python.org/mailman/listinfo/python-list