Python:检查字符串是否在列表中的任何项目中?
我有一个Python:检查字符串是否在列表中的任何项目中?,python,string,list,Python,String,List,我有一个服务器列表,我正在解析文件中的电子邮件地址。我想收集并非来自某些服务器的所有地址,例如gmail.com 目前,我在文件读取循环中有以下内容: server_list = ["gmail.com", "yahoo.com"] #etc for servers in server_list: if servers in emailaddress: #get emailaddress from inside of a open(file) line loop badma
服务器列表
,我正在解析文件中的电子邮件地址。我想收集并非来自某些服务器的所有地址,例如gmail.com
目前,我在文件读取循环中有以下内容:
server_list = ["gmail.com", "yahoo.com"] #etc
for servers in server_list:
if servers in emailaddress: #get emailaddress from inside of a open(file) line loop
badmail.extend(emailaddress)
这允许我收集列表中的坏邮件坏邮件
。有没有办法创建一个好邮件列表,即如果服务器列表中的任何项目都不包含电子邮件地址
在同一个循环中,或者我必须创建一个所有电子邮件的列表并删除坏邮件?您可以使用函数确保电子邮件地址不会以同一循环中的任何服务器结尾服务器列表
,如下所示
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
同样,您可以使用函数获取错误的电子邮件地址,如下所示
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
看起来您正在从文件中读取电子邮件地址。所以,你可以这样做
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
根据,我们实际上可以将一个数据元组传递给。因此,代码可以进一步简化为
server_list, good_list, bad_list = ("gmail.com", "yahoo.com"), [], []
...
...
if email_address.endswith(server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
您可以使用函数确保电子邮件地址不会以服务器列表中的任何服务器结尾,如下所示
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
同样,您可以使用函数获取错误的电子邮件地址,如下所示
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
看起来您正在从文件中读取电子邮件地址。所以,你可以这样做
server_list, good_email = ["gmail.com", "yahoo.com"], []
if all(not emailaddress.endswith(server) for server in server_list):
good_email.append(emailaddress)
server_list, bad_email = ["gmail.com", "yahoo.com"], []
if any(emailaddress.endswith(server) for server in server_list):
bad_email.append(emailaddress)
server_list, good_list, bad_list = ["gmail.com", "yahoo.com"], [], []
with open("email.txt") as in_file:
for email_address in in_file:
email_address = email_address.rstrip()
if any(email_address.endswith(server) for server in server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
根据,我们实际上可以将一个数据元组传递给。因此,代码可以进一步简化为
server_list, good_list, bad_list = ("gmail.com", "yahoo.com"), [], []
...
...
if email_address.endswith(server_list):
bad_list.append(email_address)
else:
good_list.append(email_address)
听起来你可以在else
什么是emailaddress
?列表?如果有,您可以简化为(电子邮件地址中的服务器用于服务器列表中的服务器):
。另外,您可能希望附加
,而不是扩展
,列表,假设它是一个字符串。emailaddress是从文件中的一行提取的字符串,就像您可以在中处理它一样,否则
什么是emailaddress
?列表?如果有,您可以简化为(电子邮件地址中的服务器用于服务器列表中的服务器):
。另外,您可能希望附加
,而不是扩展
,列表,假设它是一个字符串。emailaddress是从文件+1中的一行提取的字符串,但您应该只使用if/else
,而不是两次检查相同的内容。@tobias__k谢谢:)我正在编辑答案,请现在检查。您可以使用电子邮件地址.endswith(元组(服务器列表))
而不是genexp,甚至可以从服务器列表开始创建元组。谢谢,这非常有用。然而,我注意到您只检查了端部-是否有任何方法也检查所有零件?i、 e.like.contains?@Kash这很简单:)你可以做任何事情(在电子邮件地址中的服务器在服务器列表中的服务器)
+1,但你应该只使用if/else
,而不是两次检查同一件事。@tobias\u k谢谢:)我正在编辑答案,请现在检查。你可以使用电子邮件地址.endswith(元组(服务器列表))
而不是genexp,甚至可以从服务器列表
一个元组开始。谢谢,这非常有用。然而,我注意到您只检查了端部-是否有任何方法也检查所有零件?i、 e.like.contains?@Kash这很简单:)你可以做任何(服务器列表中的服务器的电子邮件地址中的服务器)