如何检查字符串是否是字符串列表中项目的子字符串

新手上路,请多包涵

如何在以下列表中搜索包含字符串 'abc' 的项目?

 xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

以下检查 'abc' 是否在列表中,但未检测到 'abc-123''abc-456'

 if 'abc' in xs:

原文由 SandyBr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 574
2 个回答

要检查列表中的任何字符串中是否存在 'abc'

 xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any("abc" in s for s in xs):
    ...


要获取所有包含 'abc' 的项目:

 matching = [s for s in xs if "abc" in s]

原文由 Sven Marnach 发布,翻译遵循 CC BY-SA 4.0 许可协议

只是把它扔在那里:如果你碰巧需要匹配多个字符串,例如 abcdef ,你可以组合两个理解如下:

 matchers = ['abc','def']
matching = [s for s in my_list if any(xs in s for xs in matchers)]

输出:

 ['abc-123', 'def-456', 'abc-456']

原文由 fantabolous 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题