我在字典列表中有重复项但是当我在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}}
答案 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())