【问题标题】:Python list of substrings in list of stringsPython 字符串列表中的子字符串列表
【发布时间】:2017-08-28 20:16:02
【问题描述】:

我想知道子字符串列表是否包含在列表中。例如,我有:

    string_list = ['item1', 'item2', 'subject3', 'subject4']

和子串列表

    substrings = ['item', 'subject']

我想知道“项目”或“主题”是否包含在 string_list 的任何项目中。个人而言,我会这样做:

    any('item' in x for x in string_list)

这适用于一个子字符串,但我想找到一种在子字符串列表中搜索两个字符串的漂亮方法。

【问题讨论】:

  • 你可以嵌套anys,或者写一个更复杂的生成器表达式来创建叉积,或者使用itertools.product为你做。
  • 您的预期结果是什么?您想要匹配string_list 以substring 开头的项目,还是完全匹配?
  • 我只想判断字符串列表是否包含子字符串列表中的任何字符串。

标签: python list substring


【解决方案1】:
any(y in x for x in string_list for y in substrings)

【讨论】:

    【解决方案2】:

    由于子字符串实际上是在开头,您可以使用str.startswith,它可以采用前缀元组:

    any(x.startswith(('item', 'subject')) for x in string_list)
    

    【讨论】:

      【解决方案3】:

      你可以试试这个:

      string_list = ['item1', 'item2', 'subject3', 'subject4']
      
      substrings = ['item', 'subject']
      
      any(any(b in i for b in substrings) for i in string_list)
      

      输出:

      True
      

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 2013-06-18
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 2020-03-12
        • 1970-01-01
        • 2014-08-30
        • 2016-10-21
        相关资源
        最近更新 更多