当前位置: 首页 > 知识库问答 >
问题:

统计子字符串在字符串列表中的出现次数

洪弘壮
2023-03-14

我知道计算列表项的简单出现次数非常简单:

>>> [1, 2, 3, 4, 1, 4, 1].count(1)
3

但是我想知道如何做的是每次一个字符串出现在列表条目的子字符串中时计数。

例如,我想查看列表数据中出现了多少次foo

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)

但结果也是零。

我想知道如何计算列表中出现的每个子字符串。


共有3个答案

轩辕啸
2023-03-14

如果数据=[“abababa in foo”,“abababa”]

>>> data = ["abababa in foo", "abababa"]
>>> str = "aba"
>>> length = len(str)
>>> sum(element[index:index+length] == str for element in data for index,char in enumerate(element))
6
楚畅
2023-03-14

你可以试试这个:

from itertools import chain

data = ["the foo is all fooed", "the bar is all barred", "foo is now a bar"]

data = list(chain.from_iterable([i.split() for i in data]))

print(data.count("foo"))

输出:

2
百里芷阳
2023-03-14

您可以通过使用sum内置函数来实现这一点。无需使用list.count

>>> data = ["the foo is all fooed", "the bar is all barred", "foo is now a bar"]
>>> sum('foo' in s for s in data)
2
>>>

这段代码之所以有效,是因为布尔可以被视为整数。每次'foo'出现在字符串元素中时,都会返回TrueTrue的整数值为1。这就好像每次'foo'在一个字符串中,我们都返回1。因此,对返回的1求和将得到元素中出现1的次数。

编写上述代码的一种可能更明确但等效的方法是:

>>> sum(1 for s in data if 'foo' in s)
2
>>> 
 类似资料:
  • 本文向大家介绍计算字符串中子串出现的次数。相关面试题,主要包含被问及计算字符串中子串出现的次数。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】

  • 问题内容: 我的主字符串是“ hello Swift Swift和Swift”,子字符串是Swift。我需要获取子字符串“ Swift”在提到的字符串中出现的次数。 此代码可以确定模式是否存在。 现在我需要知道发生的次数。 问题答案: 一种简单的方法是分割,然后从零件数中减去1: 此代码打印3。 编辑: 在Swift 3语法之前,代码如下所示:

  • 本文向大家介绍统计某一字符或字符串在另一个字符串中出现的次数相关面试题,主要包含被问及统计某一字符或字符串在另一个字符串中出现的次数时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 如何计算给定子字符串在Python字符串中出现的次数? 例如: 问题答案: , 像:

  • count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。 count 方法的语法格式如下: str.count(sub[,start[,end]]) 此方法中,各参数的具体含义如下: str:表示原字符串; sub:表示要检索的字符串; start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索; end:指定

  • 问题内容: 计算字符串中字符出现次数的最简单方法是什么? 例如,计算出现在其中的次数 问题答案: 返回sub范围中的子字符串不重叠的次数。可选参数并以片表示法解释。