Python リスト内のサブリストの存在を確認する
より大きなリスト内にサブリストが存在するかどうかを確認するには、関数型プログラミングの力を利用できます。 Pythonで。これを実現する簡潔な関数は次のとおりです。
<code class="python">def contains_sublist(lst, sublst): n = len(sublst) return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>
この関数は、インデックス i から開始して大きいリスト lst を反復処理し、長さ n (サブリストの長さ) のスライスをサブリストと比較することによって機能します。サブリスト。これらのスライスのいずれかが sublst に一致する場合、関数は True を返します。それ以外の場合は、False を返します。
次の例を考えてみましょう:
<code class="python">lst1 = [1,0,1,1,1,0,0] lst2 = [1,0,1,0,1,0,1] sublistExists(lst1, [1,1,1]) == True sublistExists(lst2, [1,1,1]) == False</code>
関数は O(m*n) の時間計算量で動作します。ここで、m は大きい方のリストの長さ、n はサブリストの長さです。 any() 関数を活用して最初の一致時に効率的に終了し、計算効率を確保します。
以上がPython リスト内のサブリストの存在を効率的に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。