在Python中相互比较列表项

1 投票
2 回答
993 浏览
提问于 2025-04-17 05:17

考虑一个电子邮件的列表:

['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 这个东西会帮你去掉所有重复的项,比较一下长度就能知道有没有重复的被去掉了。

撰写回答