あるリストが別のリストのサブセットであるかどうかを確認するにはどうすればよいですか? 質問する

あるリストが別のリストのサブセットであるかどうかを確認するにはどうすればよいですか? 質問する

リストが別のリストのサブセットであるかどうかを確認する必要があります。私が求めているのはブール値の戻り値だけです。

交差後に小さいリストで等価性をテストするのが、これを行う最も速い方法でしょうか? 比較する必要があるデータセットの数を考えると、パフォーマンスは最も重要です。

議論に基づいてさらに事実を追加します。

  1. どちらのリストも多くのテストで同じになりますか? そのうちの 1 つは静的ルックアップ テーブルであるため、同じになります。

  2. リストである必要がありますか? 必要ありません。静的ルックアップ テーブルは、パフォーマンスが最も優れているものであれば何でもかまいません。動的なルックアップ テーブルは、静的ルックアップを実行するためのキーを抽出する辞書です。

このシナリオでは最適な解決策は何でしょうか?

ベストアンサー1

>>> a = [1, 3, 5]
>>> b = [1, 3, 5, 8]
>>> c = [3, 5, 9]
>>> set(a) <= set(b)
True
>>> set(c) <= set(b)
False

>>> a = ['yes', 'no', 'hmm']
>>> b = ['yes', 'no', 'hmm', 'well']
>>> c = ['sorry', 'no', 'hmm']
>>> 
>>> set(a) <= set(b)
True
>>> set(c) <= set(b)
False

おすすめ記事