在 Python 中,我有一个set
文件名和一个给定的目录名(在循环中)。
集合中的文件名和给定的目录名都在同一个命名空间中,例如,我只是想看看集合中是否有任何以给定字符串/前缀开头的成员字符串。
什么是 Python 方法来查看集合中的任何文件名是否以给定的目录前缀开头?
您可以使用内置any
函数:
any(x.startswith(prefix) for x in your_set)
这为您提供了一个简单的True
或False
-- 取决于是否有任何项目符合标准。如果您想知道哪个元素符合您的条件,那么您需要next
:
next((x for x in your_set if x.startswith(prefix)),None)
当然,这只返回符合您条件的 1 个元素——如果您需要所有这些元素,请查看jsbueno 的答案。
您必须遍历所有 set 元素 - 您只需执行以下操作即可获得这些名称的 lsit:
results = [element for element in your_set if element.startswith(your_prefix)]
但是通过这样做,您会失去对元素的快速访问集 - 因为它是使用它存储的 strigns 的哈希来完成的。因此,没有使用纯集合的快速方法来快速检查其元素中的子字符串。