【问题标题】:Check if a string contains substring or part of it [duplicate]检查字符串是否包含子字符串或其一部分[重复]
【发布时间】:2017-08-15 03:27:09
【问题描述】:

我想检查一个字符串是否包含子字符串或该子字符串的一部分,例如:

string = "Hello 13 World"
substring = "01234567890"
print has_part_of_substring(string, substring) # True: "1" and "3" contains on the string

【问题讨论】:

  • 你要的是最长公共子序列

标签: python string find contains


【解决方案1】:

一个更常见的任务是找到最长的公共子序列,但如果你真的想按照你在问题中所说的去做:

检查字符串是否包含子字符串或该子字符串的一部分。

考虑到这可以简化为:两个字符串中必须至少有一个字符。

如果您转换为集合并找到交集,这很简单:

>>> string = "Hello 13 World"
>>> substring = "01234567890"
>>> bool(set(string) & set(substring))
True
>>> string = 'Hello 13 world'
>>> substring = 'abc'
>>> bool(set(string) & set(substring))
False

【讨论】:

    【解决方案2】:

    fast method:

    any(chr in string for chr in substring)
    

    检查substring 中的每个字符是否在string 中,并在找到匹配项时退出。

    【讨论】:

    • 仅供参考,内括号是多余的,可以安全删除。
    • @ForceBru 好电话。不知道为什么我希望它默认为列表而不是生成器。
    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 2019-06-06
    • 2011-11-09
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多