Вы можете split
строку (без указания разделителя означает разделение в соответствии с любым пробелом), а затем суммировать длины получаемых строк
def count_characters_in_string(string):
return sum([len(word) for word in string.split()])
print("The number of characters in this string is:", count_characters_in_string("Apples and Bananas"))
РЕДАКТИРОВАТЬ : следуя полезному совету @schwobaseggl, я создал 3 версии функции и рассчитал их, чтобы выяснить, что опция map
на самом деле самая быстрая
def count_characters_in_string(string):
return sum([len(word) for word in string.split()])
def count_characters_in_string_gen(string):
return sum(len(word) for word in string.split())
def count_characters_in_string_map(string):
return sum(map(len, string.split()))
%timeit count_characters_in_string("Apples and Bananas")
718 ns ± 21.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit count_characters_in_string_gen("Apples and Bananas")
812 ns ± 13.6 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit count_characters_in_string_map("Apples and Bananas")
607 ns ± 19.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)