如果我有一个像
这样的列表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'
我只是想知道是否有其他方式或更好的方法来做到这一点。 谢谢
答案 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
>>>