簡體   English   中英

如何使用python計算沒有空格的字符串中的字符?

[英]how to count characters in a string without the white spaces using python?

我創建了一個函數來計算字符串中的字符數,但它也會計算空格。

這是我的代碼:

def count_characters_in_string(mystring):
    string_1 = mystring
    print("The number of characters in this string is:", len(string_1))
count_characters_in_string("Apples and Bananas")

有沒有辦法不計算空格?

這個不會使用sumstr.isspace以及issubclass(bool, int)的事實在內存中創建虛假liststr

def count_characters_in_string(mystring):
    return sum(not c.isspace() for c in mystring)

您可以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)

用這個:

def count_characters_in_string(input_string):

    letter_count = 0

    for char in input_string:
        if char.isalpha():
            letter_count += 1

    print("The number of characters in this string is:", letter_count)

這也有效:

def count_characters_in_string(input_string):

    letter_count = len(input_string.replace(" ",""))

    print("The number of characters in this string is:", letter_count)

當你然后運行:

count_characters_in_string("Apple Banana")

它會輸出:

"The number of characters in this string is: 11"

好吧,您可以做一件簡單的事情,使用相同的字符串創建一個新變量,將該字符串上的所有空白替換為空,然后您獲得兩個字符串的長度並獲得差異。

string1 = "asd asd asd asd asd"
string2 = string1
string2.replace(" ", "")
size1 = len(string1)
size2 = len(strgin2)
size3 = size1 - size2

干杯

您如何看待list comprehension len

def count_characters_in_string(mystring):
    return len([character for character in mystring if character.isalpha()])

解決方案之一可能是遍歷字符並檢查它是否不是空格,然后按如下方式遞增計數:

def count_characters_in_string(mystring):
    count = 0
    for x in mystring:
        if x !=' ':
            count+=1
    return count

res = count_characters_in_string("Apples and Bananas")
print(res)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM