[英]How do I find a substring match in a list only if it completely contains a substring of another string in a list?
[英]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.