「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python でリストが項目を共有しているかどうかを確認するにはどうすればよいですか?

Python でリストが項目を共有しているかどうかを確認するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:145

How Do I Check if Lists Share Any Items in Python?

Python でリストが項目を共有しているかどうかをテストする

はじめに

Python で複数のリストを操作する場合、多くの場合、要素が重複しているかどうかを判断する必要があります。これらのリストの間。これは、さまざまなデータ分析および操作タスクの基本的な操作として機能します。

短い回答

Python でリストの重複をテストするための推奨されるアプローチは、not set(a).isdisjoint(b) を利用することです。 ) 表現。これは、このタスクに対して一般的に効率的で簡潔な方法を提供します。

詳細な分析

方法 1: 交差の設定

bool(set(a) & set(b))
  • 両方のリストをセットに変換し、それらのリストをチェックしますIntersection.
  • セットへの変換には追加のメモリと時間が消費されるため、特に大きなリストの場合は比較的遅くなります。

方法 2: In 演算子を使用したジェネレーター式

any(i in a for i in b)
  • を繰り返します1 つのリストと、他のリストのメンバーシップについて各要素をチェックします。
  • 要素がリストの先頭に近い場合は高速ですが、共有要素のないリストや共有要素が最後にある場合は非効率的です。
]

方法 3: ハイブリッド (反復とセット メンバーシップ)

a = set(a); any(i in a for i in b)
  • 一方のリストをセットに変換し、もう一方のリストを反復処理して、セット内のメンバーシップを確認します。
  • 一般に、他のメソッドよりも時間がかかります。

メソッド 4: 独立したメソッドSets

not set(a).isdisjoint(b)
  • セットの isdisjoint() メソッドを使用して、2 つのセットに共通の要素があるかどうかを判断します。
  • 特にリストが異なる場合、共有リストと非結合リストの両方で高速かつ効率的size.

パフォーマンスの比較

パフォーマンス テストでは、特に大きなリストや共有要素がまばらな状況では、ほとんどの場合、not set(a).isdisjoint(b) が優れていることがわかります。

結論

Python でリストの重複をテストするには、not の使用を検討してください。 set(a).isdisjoint(b) 式は、さまざまなリスト サイズやシナリオにわたって信頼性が高く、効率的で、汎用性の高いソリューションを提供します。

リリースステートメント この記事は次の場所に転載されています: 1729382836 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3