遍历列表并返回包含特定单词

时间:2016-12-13 11:23:24

标签: python list search contain

我的代码如下:

wordSearch = "ghi"
lst = ['c:/test/abc.bat','c:/test/test1/def.bat','c:/123/ghi.exe','c:/test/testing/aa/jkl.bat']

通过搜索" ghi"我希望它返回" c:/123/ghi.exe"。所以,最终我希望它遍历列表并返回包含特定文本的元素。

非常感谢。

3 个答案:

答案 0 :(得分:1)

像这样使用list comprehension

[item for item in lst if wordSearch in item]

上述行将返回包含wordSearch的任何项目。

<强>输出:

>>> wordSearch = "ghi"
>>> lst = ['c:/test/abc.bat','c:/test/test1/def.bat','c:/123/ghi.exe','c:/test/testing/aa/jkl.bat']
>>> 
>>> [item for item in lst if wordSearch in item]
['c:/123/ghi.exe']

答案 1 :(得分:0)

如果你想要一个只返回第一次出现的函数:

wordSearch = "ghi"
lst = ['c:/test/abc.bat','c:/test/test1/def.bat','c:/123/ghi.exe','c:/test/testing/aa/jkl.bat']

def find_word(wordSearch, lst):
    for path in lst:
        if wordSearch in path:
            return path

print(find_word(wordSearch, lst))

答案 2 :(得分:0)

您可以使用filter

 print filter(lambda x: 'ghi' in x, lst)

对于Python3,上面的行将返回一个filter对象。因此,您需要使用工厂函数list()

print(list(filter(lambda x: 'ghi' in x, lst)))