L=[2,4,5,6,2,1,6,6,3,2,4,5,3,4,5]
我想知道任意子序列显示的次数,例如s=[2,4,5]
将返回2次。
我尝试L.count(s)
但它不起作用,因为我认为它不希望在没有方括号的情况下寻找[random numbers ... [2,4,5] ... random numbers]
而不是2,4,5
之类的内容。
答案 0 :(得分:4)
>>> L = [2,4,5,6,2,1,6,6,3,2,4,5,3,4,5]
>>> s = [2,4,5]
>>> sum(1 for i in range(len(L)) if L[i:i+len(s)]==s)
2
几乎相同,略短(使用True
可以表现得像1
的事实):
>>> sum(L[i:i+len(s)]==s for i in range(len(L)))
2
答案 1 :(得分:0)
x=0
for i in range(len(L)):
if L[i:i+len(s)]==s:
x+=1
或使其成为列表理解:
len([None for i in range(len(L)) if L[i:i+len(s)]==s])