Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:检查字符串是否在列表中的任何项目中?_Python_String_List - Fatal编程技术网

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这很简单:)你可以做
任何(服务器列表中的服务器的电子邮件地址中的服务器)