比较两个列表(检查短列表在长列表中出现的次数)



我正在做作业,但我被代码卡住了。 问题是关于两个包含字符串字母作为元素的列表,我们想知道小文本在长文本中出现多少次。(有订单)

例: long=[

'a','k','g','j','a','k','k','a','k','g']小=['a','k','g']

那么答案应该是 2,因为它出现了两次(第一部分和最后一部分) 正如我尝试的那样:

def search(long,small):
words=[]
for k in range(len(long)):
for l in range(len(small)):
if long[k]==small[l]:
words.append()
return(words)

首先尝试在列表中写下匹配项,然后除以列表的镜头以获得数字。但不幸的是,这给了我第一场比赛,我不确定如何获得所有的比赛。希望你们能帮助我。

您可以通过前进small元素并在遇到"奇数"元素时重置计数器来实现:

def search(long,small):
indexCt = 0
count = 0
for k in range(len(long)):
if long[k]==small[indexCt]:
indexCt += 1
else:
indexCt = 0
if(indexCt == len(small)):
indexCt = 0
count += 1
return count

将长列表切成 len(小)长的小块,每次检查相等性

def search(long, small):
return sum(long[i:i+len(small)]==small for i in range(len(long)-len(small)+1))
print(search(['a','k','g','j','a','k','k','a','k','g'], ['a','k','g']))

输出:

2

相关内容

  • 没有找到相关文章

最新更新