Search code examples
pythonlistsum

Python: Sum string lengths


Is there a more idiomatic way to sum string lengths in Python than by using a loop?

length = 0
for string in strings:
    length += len(string)

I tried sum(), but it only works for integers:

>>> sum('abc', 'de')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]

Solution

  • I know this is an old question, but I can't help noting that the Python error message tells you how to do this:

    TypeError: sum() can't sum strings [use ''.join(seq) instead]
    

    So:

    >>> strings = ['abc', 'de']
    >>> print len(''.join(strings))
    5