簡體   English   中英

如何檢查字符串是否包含 Python 列表中的特定字符?

[英]How to check if a string contains specific characters in a list in Python?

我想計算一個字符串中的句子數。 句子由“.”、“?”分隔。 或“。”:我文件中的“文本”變量說。 恭喜! 今天是你的好日子。 你要去偉大的地方! 你已經離開了!

然而,我的程序說這個句子只包含 2 個句子。 我認為這是因為這些字符沒有重復(3x 次 '.' 並且只有一次 '.')

我將如何在我的代碼中解決這個問題? 提前致謝。

def number_of_sentences(text):

    count = 0
    special_characters = ['.', '!', '?']

    for char in special_characters:
        if char in text:
            count += 1
    print(count)
    return count

您可以使用sum和使用str.count的理解:

sum(text.count(c) for c in special_characters)

這不是首選方法。 使用正則表達式更穩定:

import re
len(re.findall(r'\.|\!|\?', test))

雖然為什么不直接使用str.split function。 每個句子都由空格分隔,因為它是:

len(text.strip().split(' '))

另一種選擇是利用 True 和 False 求和,如 1 和 0

sum(c in special_characters for c in text)

添加 if 語句

 def count_special_chars(text):
    count = 0
    special_characters = ['.', '!', '?']
    for x in text:
        if x in special_characters:
            count +=1
    print(count)
            
count_special_chars('hi!!!!')

換個方式就行了。

for char in text:
        if char in special characters:
            count += 1

這是相同的復雜性,因為包含檢查對於字符串也是 O(n)。

暫無
暫無

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

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