如何在数组中查找指定字符序列并统计其出现次数?
统计数组中子序列的出现次数
原来的代码用any()只能判断子序列是否存在,要统计出现次数,只需要把any()替换成sum()即可——因为Python中布尔值True等价于1,False等价于0,sum()会自动累加所有符合条件的匹配项数量。
修改后的代码如下:
mylist = ['A','V','V'] listfull = ['A','V','V','V','V','V','E','A','V','V'] n = len(mylist) count = sum(mylist == listfull[i:i + n] for i in range(len(listfull)-n + 1)) print(count) # 输出:2
代码说明
len(listfull)-n + 1:计算所有可能的起始索引范围,确保切片不会超出原数组的边界mylist == listfull[i:i + n]:逐个比较从索引i开始的长度为n的切片是否和目标子序列完全匹配sum():累加所有匹配成功的次数(每次匹配成功返回True,对应数值1)
内容的提问来源于stack exchange,提问作者Cleber Souza
相关产品推荐
相关产品推荐

