Python :有没有办法知道字典存在于列表中


some_list = [{"email":"were@mail.com","id_array":1234},{"email":"repo@mail.com","id_array":9887}]

例如,我想知道列表中是否存在were@mail.com电子邮件。

你可以用这个:

any(item["email"] == "were@mail.com" for item in some_list)
# True

遍历some_list并检查其any项目是否具有给定的电子邮件。

如果您需要经常执行此检查,可以通过生成仅包含邮件的set来加快速度,然后与in一起检查:

email_set = set(item["email"] for item in some_list)
"were@mail.com" in email_set
# True

使用列表推导:

emails = [i['email'] for i in some_list]
[In]: 'were@mail.com' in emails
[Out]:
True

如果您的列表很大,也不要犹豫,查看其他方法的效率(在创建仅包含邮件的列表之后): 检查列表中是否存在值的最快方法

你也可以使用这个:-

some_list = [{"email":"were@mail.com","id_array":1234}, 
{"email":"repo@mail.com","id_array":9887}]
email_list = []
for var in some_list:
email_list.append(var['email'])
if "were@mail.com" in email_list:
print("Yes you have required email.")
else:
print("No you do not have required email") 

我希望它能帮助你。

最新更新