繁体   English   中英

如何在列表中查找包含给定 substring 的字符串

[英]How to find a string that contains a given substring in a list

我很想知道最“pythonic”的方法来检查字符串列表中是否有一个项目包含给定的 substring。

例如,假设我们有一个 email 地址列表:

['email1@abc.com', 'anotheremail@grandmasSMTPserver.net', 'myboss@dontemailme.org']

我们需要向此列表中的大多数电子邮件发送 email,但不是全部。 检查包含 substring 的列表元素(例如'dontemailme.org'然后将其从列表中删除的最简单(阅读:最“pythonic”)方法是什么?

我主要关心的是判断list中的item是否包含substring,理想情况下具体是哪个item,这样我就可以对list进行相应的调整了。

我来自 C++ 背景,所以我最初的想法是使用带有if语句的for循环来检查,但我经常对 Python 的灵活性感到惊讶。

您可以使用列表理解

emails = ['email1@abc.com', 'anotheremail@grandmasSMTPserver.net', 'myboss@dontemailme.org']
output_list = [email for email in emails if 'dontemailme.org' not in email]

print(output_list) # output: ['email1@abc.com', 'anotheremail@grandmasSMTPserver.net']

filter是一种方式:

filtered = filter(lambda email: 'dontemailme.org' not in email, emails)

我会使用列表理解:

emails = ['email1@abc.com', 'anotheremail@grandmasSMTPserver.net', 'myboss@dontemailme.org']    
filtered_emails = [email for email in emails if "dontemailme.org" not in email]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM