ホームページ  >  記事  >  バックエンド開発  >  Python リスト内のサブリストの存在を効率的に判断するにはどうすればよいですか?

Python リスト内のサブリストの存在を効率的に判断するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 18:01:03252ブラウズ

How to Efficiently Determine Sublist Presence in a Python List?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。