ホームページ > バックエンド開発 > Python チュートリアル > Python で 2 つのネストされたリストの共通部分を見つけるにはどうすればよいですか?

Python で 2 つのネストされたリストの共通部分を見つけるにはどうすればよいですか?

DDD
リリース: 2024-11-30 16:54:10
オリジナル
936 人が閲覧しました

How Do You Find the Intersection of Two Nested Lists in Python?

ネストされたリストの共通部分の決定

2 つのフラット リストの共通部分を見つけるのは簡単なプロセスです。ただし、ネストされたリストを扱う場合はさらに複雑になります。この記事では、2 つのネストされたリストから共通の要素を抽出し、それらをネストされた形式で表示するためのソリューションを提供します。

ソリューションを理解するには、2 つのセット、つまりリストの共通部分がコレクションであることに注意することが重要です。両方のセットに共通する要素。ネストされたリストの場合、各リストの個々の要素に対して交差演算を実行する必要があります。

これを実現するには、Python の組み込みセット データ構造を利用できます。これにより、効率的な演算が可能になります。交差点を見つけること。次のネストされたリストを考えてみましょう:

c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
ログイン後にコピー

私たちの目標は、これら 2 つのリストの共通部分を見つけて次の結果を取得することです:

c3 = [[13, 32], [7, 13, 28], [1, 6]]
ログイン後にコピー

これを達成するには、ネストされたそれぞれのリストを変換できます。リストをその要素のセットに追加します。次に、これらのセットに対して交差演算を実行して、共通の要素を特定します。最後に、元のネスト構造を維持しながら、交差したセットをネストされたリストに変換し直すことができます。

# Convert each nested list to a set
set1 = set(c1)
set2s = [set(list_) for list_ in c2]

# Find the intersection of the sets
intersected_sets = set1.intersection(*set2s)

# Convert the intersected set back into a nested list
c3 = [[element for element in list_ if element in intersected_sets] for list_ in c2]
ログイン後にコピー

これらの手順に従うことで、ネストされたリストの交差を効率的に見つけて、結果を目的の形式で表示できます。形式。

以上がPython で 2 つのネストされたリストの共通部分を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート