在Python中,我有一个set
个文件名和一个给定的目录名(在一个循环中)。
集合中的文件名和给定的目录名都在同一名称空间中,例如我只想查看集合中是否有任何以给定字符串 /前缀开头的成员字符串。
用什么方法查看集合中的任何文件名是否以给定的目录前缀开头?
答案 0 :(得分:2)
您可以使用内置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个元素 - 如果您需要所有这些元素,请参阅answer by jsbueno。
答案 1 :(得分:0)
你必须循环遍历所有设置元素 - 只需执行以下操作即可获得这些名称:
results = [element for element in your_set if element.startswith(your_prefix)]
但是通过这样做你松开了快速访问集必须元素 - 因为它是由它存储的条纹哈希完成的。因此,没有快速的方法,使用纯集,快速检查其元素中的子串。