2
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

4

2 に答える 2

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

ほぼ同じですが、少し短くなります ( Truenumber のように振る舞うことができるという事実を使用します1):

>>> sum(L[i:i+len(s)]==s for i in range(len(L)))
2
于 2013-04-27T22:57:56.643 に答える
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])
于 2013-04-27T22:56:29.407 に答える