当前位置: 首页 > 面试题库 >

字符串上的字母数

籍永安
2023-03-14
问题内容

Python newb在这里。我试图计算给定字符串中字母“ a”的数量。代码如下。它会继续在字符串“ banana”中返回1而不是3。任何输入表示赞赏。

def count_letters(word, char):
    count = 0
    while count <= len(word):
        for char in word:
            if char == word[count]:
                count += 1
            return count



print count_letters('banana','a')

问题答案:

其他答案表明您的代码出了什么问题。但是,如果您不只是为了锻炼,还可以通过内置的方式进行此操作:

>>> 'banana'.count('a')
3

Danben给出了以下更正版本:

def count_letters(word, char):
  count = 0
  for c in word:
    if char == c:
      count += 1
  return count

还有其他一些方法,希望它们能教给您更多关于Python的知识!

类似,但for循环更短。利用了布尔值可以为1(如果为true)和0(如果为false)的事实:

def count_letters(word, char):
  count = 0
  for c in word:
    count += (char == c)
  return count

循环的缩写通常可以转化为列表/生成器理解。这将创建一个与每个字母相对应的整数列表,如果字母不匹配则为0,如果字母不匹配char则为1,然后将它们求和:

def count_letters(word, char):
  return sum(char == c for c in word)

下一个过滤掉所有不匹配的字符char,并计算剩余的字符数:

def count_letters(word, char):
  return len([c for c in word if c == char])


 类似资料:
  • 问题内容: 我正在寻找对包含数字和文本以及它们的组合的数组进行排序的最简单方法。 例如 变成 这将与我在这里提出的另一个问题的解决方案结合使用。 排序功能本身可以工作,我需要的功能是可以说‘19asd’小于‘123asd’。 我用JavaScript编写。 编辑:正如adormitu所指出的,我正在寻找的是用于自然排序的函数 问题答案: 现在,这在使用localeCompare的现代浏览器中成为可

  • 问题内容: 在JavaScript中生成随机的字母数字(大写,小写和数字)字符串以用作可能唯一的标识符的最短方法(在合理范围内)是什么? 问题答案: 如果只想允许特定字符,也可以这样: 另一种方法是使用特殊的字符串,该字符串告诉函数使用什么类型的字符。您可以这样做: 另外,要使用如下所述的base36方法,您可以执行以下操作:

  • 问题内容: 如何将Go语言中的一个字符串切成包含的字符串字母数组? 例如,将字符串“ abc”转换为数组“ a”,“ b”,“ c”。 问题答案: 例如,使用转换为符文 操场 输出: 从链接: 将字符串类型的值转换为符文类型的切片会产生一个切片,其中包含字符串的各个Unicode代码点。如果字符串为空,则结果为[] rune(nil)。

  • 问题内容: 我想将以下字符串转换为提供的输出。 我还没有发现,将处理特殊字符,如任何解决方案,,,等。 基本上,我只是想摆脱所有不是字母数字的东西。这是我尝试过的… 尝试多个步骤 结果 任何帮助,将不胜感激。 工作解决方案: 问题答案: 删除非字母数字字符 以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符: 请注意,这等效于-它包括下划线字符。要删除下划线,请使用例如: 输入格式错误

  • 问题内容: 我有一个字符串,我想用一个星号替换任何不是标准字符或数字的字符,例如(az或0-9)。例如,“ h ^&ell`。,| ow] {+ orld”被替换为“ h * ell * o * w * orld”。请注意,多个字符(例如“ ^&”)将替换为一个星号。我将如何去做呢? 问题答案: 正则表达式可以解救! 例:

  • 问题内容: 输入示例: 输出示例: 字母和数字部分的长度不固定。 我知道如何将split()与regex一起使用,但是尽管我检查了Java API,但找不到任何可以帮助我解决此问题的东西。 有没有办法做到这一点?或者我需要使用另一种方法来拆分这些字符串。 任何帮助,将不胜感激。 问题答案: 试试这个正则表达式: 这是一个正在运行的示例:http : //ideone.com/c02rmM 正则表达