[英]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.