2016-12-13 34 views
-2

我有下面這段代碼的元素:通過搜索迭代通過列表,並返回一個包含特定單詞

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」 。所以,最終我希望它遍歷列表並返回包含特定文本的元素。

非常感謝。

+0

的可能的複製[蟒蛇:在一個列表中找到的子串(http://stackoverflow.com/questions/13779526/python-finding-substring-within-a-list) –

回答

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'] 
+0

感謝這個完美的作品。 – Jaff

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

您可以使用filter

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

對於Python3,上述線將返回一個filter obj等。所以,你需要使用工廠功能list()

print(list(filter(lambda x: 'ghi' in x, lst))) 
相關問題