计数函数Python

时间:2018-07-22 11:11:44

标签: python

我想做一个与计数相同的功能, 不使用计数。 像这样:

>>> count('mama ma emu a ema ma mamu', 'ma ')
4
>>> count('mama ma emu a ema ma mamu', 'am')
2

我该如何实现?

3 个答案:

答案 0 :(得分:3)

我想我会添加一种迭代方法,在该方法中您可以遍历字符串,因为这样更容易理解。

尝试一下:

def count(string, substring):

    count = 0

    for i in range(len(string) - len(substring) + 1):
        if string[i: i + len(substring)] == substring:
            count += 1

    return count

基本上,我正在遍历i的可能值,其中i是每个子字符串的起始索引,其长度与输入的子字符串的长度相同。然后,我只是在检查每个正确长度的可能子字符串是否等于输入的子字符串。如果是这样,我将count增加1。

答案 1 :(得分:3)

是否允许使用app.controller('listController', function() { var vm = this; vm.gradeList = [{ grade: 1, category: 'very poor' }, { grade: 2, category: 'poor' }, { grade: 3, category: 'average' }, { grade: 4, category: 'good' }, { grade: 5, category: 'very good' }]; vm.gradeSelected = vm.gradeList[0].grade; });

<select multiple class="form-control"
  ng-selected="vm.gradeSelected"
  ng-model="vm.gradeSelected"
  ng-options="gradeObj.grade + ' (' + gradeObj.category + ')' for gradeObj in vm.gradeList">
</select>

打印:

re

答案 2 :(得分:2)

您可以尝试以下列表理解:

def count(s,ss):
    return sum(1 for e in range(len(s)-len(ss)+1) if s[e:e+len(ss)]==ss)