2 つのリスト間の対称差を計算する Python プログラム

WBOY
リリース: 2023-08-28 08:57:29
転載
1457 人が閲覧しました

2 つのリスト間の対称差を計算する Python プログラム

Python では、リストを使用して複数の項目を 1 つの変数に保存できます。データのコレクションを保存するための Python の 4 つの組み込みデータ型のうちの 1 つはリストで、他の 3 つはタプル、セット、ディクショナリであり、それぞれ固有の目的があります。

リストとは何ですか?

角括弧はリストを作成するために使用されます。 Python で最も強力なツールはリストです。リストは必ずしも均一ではないためです。整数、文字列、オブジェクトなどのデータ型はすべてリストで見つけることができます。リストは可変であるため、作成後でも変更できます。

リストの対称的な違い

LIST1 または LIST2 には存在するが、両方には存在しない要素のセットは、2 つのリスト LIST1 と LIST2 の間の対称的な差異を構成します。

Python では 2 つのリスト間の対称的な差を計算する方法が複数あります。同じ差を見つけるために最も効率的な方法を採用します。

リストをセットに変換し、これらのセット間の対称差分を実行しました。

###アルゴリズム###

    リストの作成
  • リストをセットに変換
  • 変換されたセットの対称差を出力します
  • リストの対称的な差分を出力します
  • ###例###
  • 次のプログラムでは、「in」を使用して 2 つのリストの違いを見つけることができます。 in キーワードには 2 つの機能があります。

文字列、リスト、タプル、範囲などに値が存在するかどうかを判断します。

  • for ループでリストを繰り返し走査します。

  • リーリー ###出力### リーリー ###例###

    ここでは、2 つのリストを作成し、空の一時変数を作成します。次に、for ループを使用してリスト内の数値を反復処理します。 If ステートメントは、数値が共通であるかどうかを確認し、最初に作成された一時変数に要素を追加します。次に、さまざまな要素を含むリストを印刷します。

    リーリー ###出力### リーリー
  • リスト内包表記を使用する

このアプローチでは、リストを明示的にセットに変換し、減算演算子を使用して他のリストから 1 つだけを削除します。他のコレクション参照を取得するには、「Python のコレクション」に移動します。これは、以前に使用した戦略と同様の戦略です。唯一の違いは、ネストされたループの代わりにリスト内包表記構文が使用されることです。

###例###

次のプログラムは、2 つのリスト list_1 と list_2 を比較しています。 2 番目のリストからセットを作成し、それを使用して両方のリストに表示される値をフィルターで除外します。結果は、SET_1 (list_2) に存在しない list_1 の要素のみを含む新しいフィルター処理されたリスト (temp_3) です。

リーリー ###出力###

リーリー

set()を使用しないでください

この方法では、要素がもう一方のリストに存在するかどうかを定期的にチェックしながら、基本的な結合手法を使用して 2 つのリストから要素がコピーされます。

###例###

次のプログラムでは、2 つのリストをパラメーターとして受け取る Difference という関数を定義します。この関数は、元のリストの両方に存在しない項目を含む新しいリスト list_dif を作成します。次に、この新しいリストと 2 つの元のリストの差分を出力します。この例では、[1, 12, 25, 22, 30, 20] が出力されます。

リーリー ###出力### リーリー

対称的な差分を使用する

Symmetry

difference ()

メソッドは、最初または 2 番目のグループの要素を返します。 2 つのコレクションの共有要素とは異なり、このメソッドは交差部分を返しません。

###例###

リーリー ###出力### リーリー ###結論は###

この記事では、Python を使用して 2 つのリスト間の対称差を計算するために 4 つの異なる方法を使用しました。各方法には独自性があり、タスクへのアプローチ方法も異なります。

以上が2 つのリスト間の対称差を計算する Python プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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