我知道计算列表项的简单出现次数非常简单:
>>> [1, 2, 3, 4, 1, 4, 1].count(1)
3
但是我想知道如何做的是每次一个字符串出现在列表条目的子字符串中时进行计数。
例如,我想看看 --- 在列表中出现了多少次 foo
data
:
data = ["the foo is all fooed", "the bar is all barred", "foo is now a bar"]
正在做:
d_count = data.count('foo')
print("d_count:", d_count)
产生:
d_count: 0
但我希望得到:
d_count: 2
我也试过这样做:
d_count = data.count(any('foo' in s for s in data))
print("d_count:", d_count)
但结果也为零。
我想知道如何计算列表中子串出现的次数。
原文由 theprowler 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
sum
内置函数来执行此操作。也无需使用list.count
:此代码有效,因为布尔值可以被视为整数。每次
'foo'
出现在一个字符串元素中,True
被返回。True
的整数值为1
。所以就好像每次'foo'
在一个字符串中,我们返回1
。因此,对返回的1
求和将得出1
在一个元素中出现的次数。编写上述代码的一种可能更明确但等效的方法是: