我有下面這段代碼的元素:通過搜索迭代通過列表,並返回一個包含特定單詞
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」 。所以,最終我希望它遍歷列表並返回包含特定文本的元素。
非常感謝。
我有下面這段代碼的元素:通過搜索迭代通過列表,並返回一個包含特定單詞
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」 。所以,最終我希望它遍歷列表並返回包含特定文本的元素。
非常感謝。
使用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']
感謝這個完美的作品。 – Jaff
如果你想有一個函數,只返回第一次出現:
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,上述線將返回一個filter
obj等。所以,你需要使用工廠功能list()
。
print(list(filter(lambda x: 'ghi' in x, lst)))
的可能的複製[蟒蛇:在一個列表中找到的子串(http://stackoverflow.com/questions/13779526/python-finding-substring-within-a-list) –