如何从列表中返回包含特定文本/字符串的所有值作为逗号分隔值?
我有一个这样的电子邮件列表:
emails = ['email@example.com',
'email1@example.com',
'email2@example.com',
'emaila@emailexample.com',
'emailb@emailexample.com',
'email33@examplex.com',
'emailas44@exampley.com',
'emailoi45@exampley.com',
'emailgh@exampley.com']
我想要做的是获取来自同一域的所有电子邮件,如下所示:
Website = 'example.com'
Email = 'email@example.com','email1@example.com','email2@example.com'
等等......
到目前为止我已经尝试过,但不知道如何实现这一目标,如果有人帮助我,那就太好了,提前致谢。
def Email(values, search):
for i in values:
if search in i:
return i
return None
data = Email(emails, 'example.com')
print(data)
最佳答案
你从来不需要正则表达式。使用列表理解,利用 str.endswith()
来查找末尾具有匹配字符的字符串:
emails = ['email@example.com',
'email1@example.com',
'email2@example.com',
'emaila@emailexample.com',
'emailb@emailexample.com',
'email33@examplex.com',
'emailas44@exampley.com',
'emailoi45@exampley.com',
'emailgh@exampley.com']
Website = 'example.com'
print([email for email in emails if email.endswith(f'@{Website}')])
# ['email@example.com', 'email1@example.com', 'email2@example.com']
关于python - 返回包含 python 字典中特定文本的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54911405/