1

したがって、サブリストがリスト内に存在し、その順序でリストに表示される必要があるかどうかを確認する必要があります。サブリストがリストに存在する場合、関数は true を返す必要があります。そうでない場合は false を返す必要があります。私はこれをしようとして関数を作成しました.誰かが私が正しい軌道に乗っているかどうか、または何を修正すべきか教えてもらえますか.b / c現在は機能していません.

def subfunc(L,sublist):

  for i in range (len(L)):
        if L[i:i+len(sublist)] == sublist:
              print "true"
        else:
              print "false"

たとえば、サブリストが[3,4]あり、リストがあった場合、 [0,1,2,3,4,5]true を返す必要があります。サブリストがあった場合は、[5,1]false を返す必要がありました。

4

4 に答える 4

0
>>> def check(L, subL):
...   for i in range(len(L)-len(subL)+1):
...     if L[i:i+len(subL)] == subL:
...       return True
...   return False
... 
>>> check(L, [4,5])
True
>>> check(L, [3,4])
True
>>> check(L, [5,1])
False
于 2013-11-15T01:16:20.313 に答える
0

あなたの主な問題は、各位置に値 (true または false) を与えているという事実です。最初の位置でサブリストが見つからないからといって、それが後で見つからないというわけではありません。したがって、それが見つかるまで待つ必要があります (反復を停止し、True見つけたら最初の位置に戻ります)。しませんでした (すべての要素を調べた後に戻りFalseますが、それらは「そうではありませんでした」)。

于 2013-11-15T01:16:34.163 に答える