Python程序计算包含指定字母的单词数量
在本文中,我们将学习如何在Python中计算字符串中包含指定字母的单词数量。
使用的方法
下面是实现此任务的各种方法-
- 使用列表推导、len()和split()函数
-
使用split()和find()函数
-
使用split()、replace()和len()函数
-
使用Counter()函数
示例
假设我们输入一个字符串和一个随机字符,我们将计算字符串中包含给定输入字符的单词数量。
输入
inputString = 'hello tutorialspoint python codes'
inputChar = "p"
输出
单词数量,包含字符'p':2
在上面的字符串中,包含输入字符’ p ‘的单词是 tutorialspoint 和 python 。因此输出是2。
方法1:使用列表推导、len()和split()函数
列表推导
当想要基于现有列表的值构建新列表时,列表推导提供了更短、更简洁的语法。
len() 返回对象中项的数量。当对象是字符串时,len()函数返回字符串中的字符数。
split() 将字符串拆分为列表。我们可以定义分隔符,其默认分隔符是任何空白字符。
算法(步骤)
以下是要执行所需任务的算法/步骤-。
- 创建一个变量以存储输入字符串。
-
打印输入字符串。
-
创建另一个变量以存储输入字符。
-
使用split()函数将输入字符串拆分为一个单词列表,并在该列表中遍历,然后检查当前列表元素中是否存在输入字符。
-
打印包含给定输入字符的单词数量。
示例
下面的程序使用列表推导、len()和split()函数返回输入字符串中包含指定输入字符的单词数量-
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入字符串
print("Input String:", inputString)
# 输入字符
inputChar = "p"
# 将输入字符串拆分为单词列表并在列表中遍历
# 然后检查当前列表元素是否包含输入字符
wordsCount = len([element for element in inputString.split() if inputChar in element])
# 打印包含输入字符的单词数量
print("The Count of words containing the char 'p' is:", wordsCount)
输出
执行上述程序将生成以下输出-
Input String: hello tutorialspoint python codes
The count of words containing the char 'p' is: 2
方法2:使用split()和find()函数
find()方法 查找给定值的第一次出现。如果未找到该值,则此方法返回-1。
语法
string.find(value, start, end)
示例
下面的程序使用split()和find()函数返回输入字符串中包含指定输入字符的单词数量-
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入的字符串
print("输入字符串:", inputString)
# 输入字符
inputChar = "p"
# 存储包含输入字符的单词计数
wordsCount=0
# 将输入字符串分割成单词列表
wordsList= inputString.split()
# 遍历单词列表
for element in wordsList:
# 检查当前列表元素中是否存在输入字符
if(element.find(inputChar)!=-1):
# 如果条件成立,单词计数值加1
wordsCount+=1
print("包含字符 'p' 的单词计数为:", wordsCount)
输出
执行上面的程序会生成以下输出 –
输入字符串: hello tutorialspoint python codes
包含字符 'p' 的单词计数为: 2
方法三: 使用split(),replace()和len()功能
replace()函数 − 返回一个字符串副本,将旧子字符串的所有出现替换为另一个新子字符串。
语法
string.replace(old, new, count)
示例
以下程序使用split(),replace()和len()函数来返回一个包含给定输入字符的单词计数 –
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入的字符串
print("输入字符串:", inputString)
# 输入字符
inputChar = "p"
# 存储包含输入字符的单词计数
wordsCount=0
# 将输入字符串分割成单词列表
wordsList= inputString.split()
# 遍历单词列表
for element in wordsList:
# 将给定输入字符替换为空格并将其存储在字符串中
p = element.replace(inputChar, "")
# 如果上面字符串的长度小于当前元素的长度,则单词计数加1
if(len(p) < len(element)):
wordsCount += 1
print("包含字符 'p' 的单词计数为:", wordsCount)
输出
输入字符串: hello tutorialspoint python codes
包含字符 'p' 的单词计数为: 2
方法四: 使用Counter()函数
Counter()函数 − 一个计数可哈希对象的子类。调用时,它会隐式地创建一个可迭代对象的哈希表。
在这种方法中,Counter()函数返回输入字符串中每个单词的字符的频率。
示例
以下程序使用Counter()函数来返回一个包含给定输入字符的单词计数 –
# 从collections模块导入Counter函数
from collections import Counter
# 输入字符串
inputString = 'hello tutorialspoint python codes'
# 打印输入的字符串
print("输入字符串:", inputString)
# 输入字符
inputChar = "p"
# 存储包含输入字符的单词计数
wordsCount = 0
# 将输入字符串分割成单词列表
wordsList = inputString.split()
# 遍历单词列表中的元素
for element in wordsList:
# 将当前单词的字符频率作为键值对获取
ele_frequency = Counter(element)
# 检查输入字符是否存在于频率字典的键中
if inputChar in ele_frequency.keys():
# 如果条件成立,单词计数值加1
wordsCount += 1
print("包含字符 'p' 的单词计数为:", wordsCount)
输出
输入字符串: hello tutorialspoint python codes
包含字符 'p' 的单词计数为: 2
结论
在本文中,我们研究了四种不同的方式来计算以特定字母开头的单词数量。我们还学习了如何使用Counter()函数来获取可迭代项的频率(字典哈希)。