J'ai des listes qui contiennent plusieurs chaînes comme :

['beth', 'Nissan', 'apple', 'three']

Je recherche un moyen simple et court (en ligne si possible) d'obtenir la somme de toutes les chaînes individuelles de cette liste. Voici le code que j'ai actuellement :

sum = 0
for string in list_of_strings:
    sum += len(string)
1
Marcello Zago 21 sept. 2021 à 23:52

4 réponses

Meilleure réponse

Que dis-tu de ça

>>> strlist = ['beth', 'Nissan', 'apple', 'three']
>>> sum(len(x) for x in strlist)
20
2
wim 21 sept. 2021 à 21:02

Si vous voulez la somme, utilisez :

result = sum([len(s) for s in list_of_strings])

Si vous êtes intéressé par la somme cumulée, utilisez :

import numpy as np

result = np.cumsum([len(s) for s in list_of_strings])
1
Gábor Pálovics 21 sept. 2021 à 21:05

Vous pouvez également essayer ceci:

list_of_strings = ['beth', 'Nissan', 'apple', 'three']

s = sum(map(len, list_of_strings))
0
ahmedazhar05 21 sept. 2021 à 21:01

Vous pouvez utiliser join pour concaténer d'abord les chaînes, puis calculer la longueur à la fois :

list_of_strings = ['beth', 'Nissan', 'apple', 'three']
len(''.join(list_of_strings))
0
Mit94 21 sept. 2021 à 21:01