ホームページ > バックエンド開発 > Python チュートリアル > Python で 2 つのリスト間の固有の違いを効率的に見つけるにはどうすればよいですか?

Python で 2 つのリスト間の固有の違いを効率的に見つけるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-21 13:38:09
オリジナル
660 人が閲覧しました

How Can I Efficiently Find the Unique Differences Between Two Lists in Python?

リスト間の固有の違いを見つける

複数のリストを扱う場合、多くの場合、リストを比較して要素の違いを特定する必要があります。 Python では、これを効率的に行う 1 つの方法は、2 つのリスト間の集合の差を見つけることです。

例:

一意の値を持つ次の 2 つのリストを考えてみましょう。要素:

temp1 = ['One', 'Two', 'Three', 'Four']
temp2 = ['One', 'Two']
ログイン後にコピー

目的:

temp2 には存在しない temp1 の要素を含む 3 番目のリスト (temp3) を作成します。この場合、予想される出力は次のとおりです:

temp3 = ['Three', 'Four']
ログイン後にコピー

解決策:

ループや明示的な比較の使用を避けるために、set データ型を利用して、効率的に2つの違いリスト:

temp3 = list(set(temp1) - set(temp2))
ログイン後にコピー

説明:

  1. set(temp1) は、temp1 を、一意の要素の順序付けされていないコレクションであるセットに変換します。
  2. set(temp2) は次のセットを作成しますtemp2.​​
  3. set(temp1) - set(temp2) は、set(temp2) に存在する要素を set(temp1) から削除する差分セット操作を実行します。
  4. 結果のセットは変換されて戻されます。 list() を使用して要素の順序を維持するリストに変換します。

セットの非対称性差:

集合の差は可換ではないことに注意してください。これは、set(temp1) - set(temp2) が set(temp2) - set(temp1) と必ずしも等しくないことを意味します。例:

set([1, 2]) - set([2, 3]) == {1}
set([2, 3]) - set([1, 2]) == {3}
ログイン後にコピー

両方のセットに固有の要素を含めることが目的の結果である場合は、metric_difference() メソッドを使用できます:

set([1, 2]).symmetric_difference(set([2, 3])) == {1, 3}
ログイン後にコピー

以上がPython で 2 つのリスト間の固有の違いを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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