遍历列表和 return 包含特定单词的元素

Iterate through a list and return the element that contains a specific word

我有以下代码:

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

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

非常感谢。

像这样使用 list comprehension

[item for item in lst if wordSearch in item]

以上行将 return 任何包含 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']

如果您想要一个仅 return 第一次出现的函数:

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))

您可以使用 filter:

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

对于 Python3,上面的行将 return 一个 filter 对象。所以,你需要在它上面使用工厂函数list()

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