1. ホーム
  2. list

[解決済み] 次の項目がすべてリストに入っているかどうかを確認するにはどうすればよいですか?

2022-04-28 09:17:57

質問

リストに1つでも項目があるかどうかを調べる方法について、関連する質問があることを発見しました。

次の項目のいずれかがリスト内にあるかどうかを確認するにはどうすればよいですか?

しかし、すべての項目がリストに存在するかどうかを見つけるための最良の、そしてパイソン的な方法は何でしょうか?

ドキュメントを検索していたら、こんな解決策を見つけました。

>>> l = ['a', 'b', 'c']
>>> set(['a', 'b']) <= set(l)
True
>>> set(['a', 'x']) <= set(l)
False

他の解決策としては、こんな感じでしょうか。

>>> l = ['a', 'b', 'c']
>>> all(x in l for x in ['a', 'b'])
True
>>> all(x in l for x in ['a', 'x'])
False

しかし、ここではさらにタイピングをする必要があります。

他に解決策はないのでしょうか?

どのように解決するのですか?

のような演算子 <= Pythonでは一般的に、"以下"と大きく異なる意味にオーバーライドされることはありません。 標準ライブラリがこのようなことをするのは珍しいことで、私にはレガシーAPIの臭いがします。

同等の、より明確な名前のメソッドを使用します。 set.issubset . 引数をセットに変換する必要はないことに注意してください。

set(['a', 'b']).issubset(['a', 'b', 'c'])