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
>>> 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
number のように振る舞うことができるという事実を使用します1
):
>>> sum(L[i:i+len(s)]==s for i in range(len(L)))
2
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])