【发布时间】:2021-10-16 04:42:29
【问题描述】:
elements = [
{'a' : 1, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 3, 'c': 3},
{'a' : 1, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 2},
{'a' : 1, 'b' : 2, 'c': 3, 'd' : 4},
{'v' : [1,2,3]}
]
鉴于以上list的dict在Python中,如何去重复到以下集合(顺序无关)有效
result = [
{'a' : 1, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 2, 'c': 3},
{'a' : 2, 'b' : 3, 'c': 3},
{'a' : 2, 'b' : 2},
{'a' : 1, 'b' : 2, 'c': 3, 'd' : 4},
{'v' : [1,2,3]}
]
最简单的方法是使用set,但是在Python 中dict 是不可散列的。现在,我的解决方案是将dict 序列化为String,如json 格式(因为dict 没有顺序,两个不同的字符串可以对应同一个字典。我必须保持一些顺序)。但是这种方法时间复杂度太高。
我的问题:
-
如何在 Python 中高效地对字典进行去重?
-
更一般地说,是否有任何方法可以覆盖类的 hashCode,如 Java 以使用
set或dict?
【问题讨论】:
标签: python python-3.x dictionary hash