python - 遍历 str 以计算特定字母的出现次数
问题描述
我正在尝试计算字符串中特定字母的出现次数。举个例子,我想计算字符串中的字母 a 和 b "acdjsfdklfdcfnqc"
(字符串或特定字母不重要)。
首先,我定义了一个容器 c,它将使用 while 循环和 if 语句计算字母的出现次数。我的代码如下:
def iterate_through_elements(input_str):
c = 0
for elements in input_str:
if elements == "a":
c += 1
return c
这段代码有效,在这里我只是想计算字符串中 a 的数量,但是当我还想计算 b 时,我修改了我的代码,如下所示:
def iterate_through_elements(input_str):
c = 0
for elements in input_str:
if elements == "a" or "b":
c += 1
return c
我添加了一个或运算符,我的想法是同时计算 a 和 b,但我的第二个函数给了我字符串中的字母总数,就像 len() 函数一样。然后我设法使用上面的功能实现了我的目标:
def get_count(inputStr):
num_vowels = 0
for char in inputStr:
if char in "ab":
num_vowels = num_vowels + 1
return num_vowels
我的主要问题是:为什么我从顶部开始的第二个代码给了我字符串中的字母总数?
我希望它遍历每个元素并查找它是 a 还是 b,如果是 a 或 b,则将容器(变量 c)加一。我不明白 c 如何等于字符串的长度以及为什么它对单个字母有效(上面的第一个函数)而不是第二个?发生了什么变化?
解决方案
你需要改变
if elements == "a" or "b":
进入
if elements == "a" or elements == "b":
或更好:
if elements in "ab":
该行的问题if elements == "a" or "b":
在于 python 将检查 ifelements == "a"
或真值是否"b"
为True
or False
,它将始终为True1 *(an empty string
'' is
False`)*。
推荐阅读
- javascript - 在JS中进行SKU组合
- .net - 如何查找pdf中使用的所有色彩空间?
- visual-studio-code - 在 vscode 中保存时运行 eslint 和更漂亮
- git - `git rebase -i` 错误:以下未跟踪的工作树文件将被结帐覆盖:
- plot - octave drawVector 配置箭头
- kubernetes - 从集群内部和外部调用 localstack
- javascript - 我正在尝试在可视代码中运行命令 npm install 但它向我显示此错误
- python - REST 命令后请求不会关闭连接
- express - GET 请求在 express JS 中发送两次
- bash - 验证命令在 BASH 中通过 ssh 成功执行