python - 如何计算列表中子字符串的出现次数

时间:2017-07-01 15:12:55

标签: python regex python-2.7 list count

如果我有一个像

这样的列表
var li = document.getElementsByTagName('li');
for(var i=0; i<li.lenght; i++){
   if(li[i].innerHtml == d1){
      //do something
   }
}

我想计算该列表中出现的子字符串list = ['helloA', 'hiA', 'helloB', helloC'] 的数量。

修改

实际上我已经有办法像下面的代码一样计算它:

'hello'

我只是想知道是否有其他方式或更好的方法来做到这一点。 谢谢

4 个答案:

答案 0 :(得分:2)

['hello' in x for x in list].count(True)

sum(['hello' in x for x in list ])

len([1 for x in list if 'hello' in x])

''.join(list).count('hello')

注意:如果您的某些字符串包含“hello”,则最后一种方法可能会提供与前三种方法不同的计数。子串多次 - 请参阅@Artyer对原始问题的评论。

另外,请避免调用列表名称&#39; list&#39; (Python中的内置类型)。

答案 1 :(得分:1)

您可以使用以下方法对每个字符串汇总布尔检查:

my_list = ['helloA', 'hiA', 'helloB', 'helloC']
sum('hello' in x for x in my_list)

另外,尽量不要将list用作变量名,因为它是Python中的内置函数/对象。

答案 2 :(得分:1)

一个简单的例子

count = 0
string = "hello"
for i in list:
    if string in i:
        count += 1

答案 3 :(得分:1)

您可以使用sum()in运算符来累计列表中出现带有子字符串hello的字符串的次数:

>>> lst = ['helloA', 'hiA', 'helloB', 'helloC']
>>> sum(string.count('hello') for string in lst)
3
>>>