如何检查列表中的部分字符串?

时间:2015-07-15 16:49:46

标签: python string list

检查列表中部分字符串的最有效方法是什么?

例如,假设我在以下列表中寻找“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

2 个答案:

答案 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,因为你给它提供了完整的文件名,而不仅仅是它的一部分