2016-12-13 9 views
-2

特定の単語が含ま要素を返す:「:/123/ghi.exe c」を検索してリストを反復し、私は以下のコード持って

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

を「GHIは、」私はそれを返したいです。したがって、最終的には、リストを繰り返し処理し、特定のテキストを含む要素を返すようにします。

多くのありがとうございます。

+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

あなたが最初のオカレンスだけを返す機能する場合:上記、のpython3のために

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

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を使用することができます行はfilter objを返しますect。したがって、ファクトリ関数list()を使用する必要があります。

print(list(filter(lambda x: 'ghi' in x, lst))) 
関連する問題