【问题标题】:Python: How to check a string for substrings from a list? [duplicate]Python:如何从列表中检查字符串中的子字符串? [复制]
【发布时间】:2011-12-28 15:43:31
【问题描述】:

可能重复:
Check if multiple strings exist in another string

我似乎无法在 Python 的任何地方找到类似 this 的代码:

基本上,我想检查一个字符串是否包含在列表中的子字符串。

【问题讨论】:

    标签: python string list substring


    【解决方案1】:

    试试这个测试:

    any(substring in string for substring in substring_list)
    

    如果substring_list 中的任何子字符串包含在string 中,它将返回True

    请注意,在链接的问题中有 Marc Gravell's answer 的 Python 类似物:

    from itertools import imap
    any(imap(string.__contains__, substring_list)) 
    

    在 Python 3 中,您可以直接使用map

    any(map(string.__contains__, substring_list))
    

    不过,使用生成器表达式的上述版本可能更清晰。

    【讨论】:

    • @newtover: Generator expressions 没有方括号。
    • 有什么方法可以在子字符串返回 True 时获取?
    • @vagabond 你可以使用next(substring for substring in substring_list if substring in string),它将返回第一个匹配的子字符串,如果没有匹配则抛出StopIteration。或者使用一个简单的循环:for substring in substring_list: if substring in string: return substring.
    • 太棒了。 Python 很漂亮!
    猜你喜欢
    • 2016-10-21
    • 2015-05-05
    • 2023-04-03
    • 2011-06-18
    • 2016-07-10
    • 2019-07-14
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多