Python でのサブリストの存在の確認
大きなリスト内にサブリストが存在するかどうかを判断することは、一般的なプログラミング タスクです。 Python にはこれを実現するためのいくつかの方法が用意されていますが、特に便利なアプローチの 1 つは、リスト スライスとカスタム関数の利用です。
次の例を考えてみましょう:
<code class="python">list1 = [1,0,1,1,1,0,0] list2 = [1,0,1,0,1,0,1]</code>
私たちの目標は、関数を作成することです。 sublistExists(list1, sublist) は、リスト 1 にサブリストが存在する場合は True を返し、そうでない場合は False を返します。
以下の contains_sublist() 関数は、リストのスライスを利用してこのチェックを実行します。
<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>
この関数lst を反復処理し、長さ n (sublst の長さ) のスライスが sublst と等しいかどうかをチェックすることによって機能します。これは、一致が見つかるとすぐに停止する any() 関数を使用しており、効率的な O(m * n) 時間計算量になります。ここで、m と n は、それぞれ lst と sublst の長さです。
使用例:
<code class="python">sublistExists(list1, [1,1,1]) # True sublistExists(list2, [1,1,1]) # False</code>
このカスタム関数を実装することで、Python の大きなリスト内のサブリストの存在を簡単にチェックできます。
以上が質問の形式と記事の内容を考慮したタイトルのオプションをいくつか示します。 短く直接的: * Python でサブリストの存在を確認するにはどうすればよいですか? * Python にサブリストは存在しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。