检查列表中部分字符串的最有效方法是什么?
例如,假设我在以下列表中寻找“4110964_se”(True)或“4210911_sw”(False):
files = ['H:\\co_1m_2013\\41108\\m_4110864_se_12_1_20130717.tif',
'H:\\co_1m_2013\\41108\\m_4110864_sw_12_1_20130717.tif',
'H:\\co_1m_2013\\41109\\m_4110964_se_12_1_20130722.tif']
如果我使用简单的检查,结果就不是我所期望的:
>>> "4110964_se" in files
False
答案 0 :(得分:8)
any('4110964_se' in f for f in files) # check if the string is in any of the list items
答案 1 :(得分:1)
Malik Brahimi的答案有效,但另一种方法是将文件放在for循环中,如下所示:
sel vol 7
assign
exit
您的解决方案无法正常工作的原因是因为它只查找具有确切值" 4110964_se"的项目,而不是查看每个字符串以查看该值是否位于任何位置字符串。例如,如果您这样做:
for f in files:
print "4110964_se" in f
它会打印True,因为你给它提供了完整的文件名,而不仅仅是它的一部分