Python 计算含有特定字母的单词数量

Python 计算含有特定字母的单词数量

在本文中,我们将学习如何在Python中计算字符串中含有特定字母的单词数量。

使用的方法

以下是实现此任务的各种方法:

  • 使用列表推导,len()和split()函数

  • 使用split()和find()函数

  • 使用split(),replace()和len()函数

  • 使用Counter()函数

示例

假设我们有一个输入字符串和一些随机字符。现在我们要计算在输入字符串中包含给定输入字符的单词数量。

输入

inputString = 'hello tutorialspoint python codes'
inputChar = "p"

输出

Count of words containing the char 'p' is: 2

在上面的字符串中,包含输入字符’ p ‘的单词是 tutorialspointpython 。因此,输出为2。

方法1:使用列表推导、len()和split()函数

列表推导

当你想要基于现有列表的值构建一个新列表时,列表推导提供了更简短/简洁的语法。

len() − len()方法返回一个对象中的项目数。当对象是字符串时,len()函数返回字符串中的字符数。

split() − 将字符串拆分为列表。我们可以定义分隔符;默认的分隔符是任何空白字符。

步骤

以下是执行所需任务的算法/步骤 -。

  • 创建一个变量来存储输入字符串。

  • 打印输入列表。

  • 创建另一个变量来存储输入字符。

  • 使用split()函数将输入字符串拆分为单词列表,并在列表中遍历,然后检查输入字符是否存在于当前列表元素中。

  • 打印输入字符串中包含给定输入字符的单词的计数。

示例

以下程序使用列表推导、len()和split()函数返回输入字符串中具有给定输入字符的单词计数 –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# splitting the input string into a list of words and traversing in that list

# and then checking if the input char is present in the current list element
wordsCount = len([element for element in inputString.split() if inputChar in element])

# printing the count of words containing the input character
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()函数,返回输入字符串中具有指定输入字符的单词计数 –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount=0

# splitting input string into the list of words
wordsList= inputString.split()

# traversing in that words list
for element in wordsList:

   # checking whether input char is present in the current list element
   if(element.find(inputChar)!=-1):

      # incrementing word count value by 1 if the condition is true
      wordsCount+=1
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

方法3:使用split(),replace()和len()函数

replace()函数 - 返回一个副本字符串,其中所有旧子字符串都被替换为新子字符串。

语法

string.replace(old, new, count)

示例

下面的程序使用split()、replace()和len()函数,在输入字符串中返回具有给定输入字符的单词计数 –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount=0

# splitting input string into the list of words
wordsList= inputString.split()

# traversing in that words list
for element in wordsList:

   # replacing given input char with space and storing that string
   p = element.replace(inputChar, "")

   # incrementing the words count by 1 if the length of the above string # is less than the length of the current element
   if(len(p) < len(element)):
      wordsCount += 1
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

方法4:使用Counter()函数

Counter()函数 - 一个子类,用于计算可哈希对象的数量。在被调用/触发时,它会隐式地创建一个可迭代对象的哈希表。

在这种方法中,Counter()函数返回输入字符串中每个单词字符的频率。

示例

以下程序使用Counter()函数返回在输入字符串中具有给定字符的单词的计数:

# importing a Counter function from the collections module
from collections import Counter

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount = 0

# splitting input string into the list of words
wordsList = inputString.split()

# traversing through the elements of the words list
for element in wordsList:

   # getting the frequency of characters of the current word as a key-value pair
   ele_frequency = Counter(element)

   # checking whether the input char is present in the keys of the frequency dictionary
   if inputChar in ele_frequency.keys():

      # incrementing the words count by 1 if the condition is true
      wordsCount += 1
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

结论

在本文中,我们研究了4种不同的方法来计算以特定字母开头的单词。我们还学习了如何使用Counter()函数来获取可迭代项的频率(字典哈希)。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程