Python では、set
ファイル名と特定のディレクトリ名を (ループで) 持っています。
セット内のファイル名と指定されたディレクトリ名の両方が同じ名前空間にあります。たとえば、指定された文字列/プレフィックスで始まるメンバー文字列がセット内にあるかどうかを確認したいだけです。
セット内のファイル名が特定のディレクトリプレフィックスで始まるかどうかを確認するPythonの方法は何ですか?
組み込みany
関数を使用できます。
any(x.startswith(prefix) for x in your_set)
これにより、いずれかのアイテムが基準を満たすかどうかに応じて、単純なTrue
or -- が得られます。False
どの要素が基準を満たしているかを知りたい場合は、次のものが必要ですnext
。
next((x for x in your_set if x.startswith(prefix)),None)
もちろん、これは基準を満たす要素を 1 つだけ返します。すべての要素が必要な場合は、jsbueno による回答を参照してください。
すべてのセット要素をループする必要があります-次のようにするだけで、これらの名前の lsit を取得できます。
results = [element for element in your_set if element.startswith(your_prefix)]
しかし、それを行うことで、要素への高速アクセスセットが失われます。これは、格納されている文字列のハッシュで行われるためです。そのため、要素内の部分文字列をすばやくチェックするために、純粋なセットを使用する高速な方法はありません。