计算列表中的字符串出现次数

时间:2017-07-07 15:45:12

标签: python

我正在尝试处理hackerrankteam上托管的简单python问题,但我在Python中列表的count函数遇到了困难。我尝试了多个测试用例,但我的计数函数总是返回0.

  • 目标:计算连续方块等于天数的出现次数。

这是列表类型的问题吗?有没有更简单的方法让我计算一行中的值,而不必检查有价值的对,然后计算总和?

import sys

def solve(size, squares, day, month):
    check = [sum(squares[nums:nums+month]) == day for nums in range(0,len(squares))]
    print (check)   #Test list output
    count = check.count('True')
    return count

#Test Cases 1
# size = 6
# squares = [1,1,1,1,1,1]
# day, month = (3,2)
#Output 0

#Test Cases 2
# size = 1
# squares = [4]
# day, month = (4,1)
#Output 1

#Test Cases 3
size = 5
squares = [1,2,1,3,2] 
day, month = [3,2]
#Output 2

#Custom User Input:
# size = int(input().strip())
# squares = list(map(int, input().strip().split(' ')))
# day, month = input().strip().split(' ')
# day, month = [int(day), int(month)]
result = solve(size, squares, day, month)
print(result)

1 个答案:

答案 0 :(得分:2)

check.count('True')

此代码计算字符串 'True'的出现次数。

应该是:

check.count(True)

你也可以简单地使用它:

sum(check)