使字典唯一列表在python中不起作用

时间:2016-07-14 05:22:56

标签: python dictionary set duplicates unique

我在字典列表中有重复项但是当我在python中使用set时我无法使它成为unqiue

b = [{"email_address": "aaa", "verify_score": "75"}, {"email_address": "bbb", "verify_score": "75"}, {"email_address": "Emailjcb.ab.baseball@gmail.com", "verify_score": "10"}, {"email_address": "aaa", "verify_score": "75"}, {"email_address": "carolpaterick@gmail.com", "verify_score": "10"}, {"email_address": "37a11ce00909300817u2ca1bb5ka40e8422d4bc38b2@mail.gmail.com", "verify_score": "10"}]

错误

{{1}}

如何使这个字典列表唯一

{{1}}

2 个答案:

答案 0 :(得分:0)

正如Julien在评论中所建议的那样,您可以将其转换为像tuple这样的可混合类型,然后对此进行独特的处理:

>>> set(tuple(d.items()) for d in b)
set([(('verify_score', '10'), ('email_address', 'carolpaterick@gmail.com')), (('verify_score', '10'), ('email_address', '37a11ce00909300817u2ca1bb5ka40e8422d4bc38b2@mail.gmail.com')), (('verify_score', '10'), ('email_address', 'Emailjcb.ab.baseball@gmail.com')), (('verify_score', '75'), ('email_address', 'bbb')), (('verify_score', '75'), ('email_address', 'aaa'))])

答案 1 :(得分:0)

Python词典不可用,这意味着它们是可变容器。它们不是总是相同的整数或字符串;内容的顺序可以改变,但在语义上是相同的。

你可以做的是尝试将字典更改为frozensets或其他一些可混合类型。

>>> unhashable = {'b': 'a', 'a': 'b'}
>>> hashable = frozenset(unhashable.items())