使用 count 函数来统计字符串中字母数量的 Python 代码

2024-06-02 07:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个程序,在不使用count函数的情况下计算字符串中特定字母的出现次数。我把字符串做成了一个列表,并设置了一个循环来计数,但是计数永远不会改变,我不知道为什么。这就是我现在所拥有的:

letter = 'a'
myString = 'aardvark'
myList = []

for i in myString:
    myList.append(i)

count = 1

for i in myList:
    if i == letter:
        count == count + 1

    else:
        continue

print (count)

任何帮助都非常感谢。


Tags: 函数字符串in程序列表forcount字母
3条回答

尽管其他人已经解决了您的问题,但最简单的解决方法是使用Counter数据类型:

>>> from collections import Counter
>>> letter = 'a'
>>> myString = 'aardvark'
>>> counts = Counter(myString)
>>> print(counts)
Counter({'a': 3, 'r': 2, 'v': 1, 'k': 1, 'd': 1})
>>> count = counts[letter]
>>> print(count)
3

或者,更简洁地说(如果您不想检查多个字母):

>>> from collections import Counter
>>> letter = 'a'
>>> myString = 'aardvark'
>>> count = Counter(myString)[letter]
>>> print(count)
3

实现的最简单方法是:

count = sum(i == letter for i in myString)

或:

count = sum(1 for i in myString if i == letter)

这是因为字符串可以像列表一样迭代,而False被计算为0,而True被计算为1的算术。

小心,您正在使用count == count + 1,并且必须使用count = count + 1

属性新值的运算符是=,运算符是用于比较两个值的==

而不是

count == count + 1

你需要有

count = count + 1

相关问题 更多 >