【问题标题】:Iterate through a list and return the element that contains a specific word遍历列表并返回包含特定单词的元素
【发布时间】:2017-04-28 10:38:08
【问题描述】:

我有以下代码:

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”。所以,最终我希望它遍历列表并返回一个包含特定文本的元素。

非常感谢。

【问题讨论】:

标签: python list search contain


【解决方案1】:

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

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】:

    你可以使用filter:

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

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

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

    【讨论】:

      【解决方案3】:

      像这样使用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']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 2013-03-21
        • 1970-01-01
        • 2020-01-10
        • 1970-01-01
        相关资源
        最近更新 更多