在Python中相互比较列表项
考虑一个电子邮件的列表:
['a@amail.com','b@bmail.com','c@cmail.com',...]
我想要比较列表中的每个项目。比如说,电子邮件应该是唯一的。请问在Python中,有什么方法可以比较列表中的项目呢?
2 个回答
1
这是一个使用 any()
和列表推导式的完美例子:
if any([emails.count(email) > 1 for email in emails]):
raise forms.ValidationError("Emails must be unique.")
3
如果你只是想测试一下列表里有没有重复的东西,可以使用:
if len(set(list_o_emails)) == len(list_o_emails):
# all are different
else:
# you had a duplicate
raise forms.ValidationError # from your comment
因为 set
这个东西会帮你去掉所有重复的项,比较一下长度就能知道有没有重复的被去掉了。