TLDR
Wenn Sie Wert auf Leistung legen, verwenden Sie
len(''.join(strings))
sonst mit map
ausreichen, ohne die Lesbarkeit des Codes zu beeinträchtigen oder die Leistung zu mindern
sum(map(len, strings))
Leistungsmetriken
Obwohl ich dem allgemeinen Konsens zustimme, dass bei der Verwendung von Python Ihre erste Priorität sollte nicht das Schreiben von effizientem und skalierbarem Code sein, ich denke, es wäre für diesen Beitrag von Vorteil, einige Zeitangaben für die vorgeschlagenen Antworten zu haben.
Mit den Worten aus dem ersten Absatz von lorem ipsum (Liste der Zeichenfolgen der Kürze halber ausgeschlossen)
In [3]: timeit("""
...: length = 0
...: for s in strings:
...: length += len(s)
...: """, globals=globals())
Out[3]: 5.197531974001322
In [4]: timeit("sum(len(s) for s in strings)", globals=globals())
Out[4]: 4.925184353021905
In [5]: timeit("sum(map(len, strings))", globals=globals())
Out[5]: 1.9876644779578783
In [6]: timeit("len(''.join(strings))", globals=globals())
Out[6]: 0.6793132669990882
Für große Listen von Zeichenketten ist @Auspex also eindeutig vorzuziehen.