Unordered hash in Python
我想按内容比较听写,所以我认为这可以通过创建项目元组的无序散列来完成。
最优雅的解决方案是什么?
我在考虑XORing所有的散列,但也许还有另一个现成的解决方案?
编辑:我有嵌套的数据结构。有些类包含dict。这些类可以聚合到集合中。因此,要将集合与预先定义的集合比较,我必须为我的dict类实现
要检查重叠键的所有值是否相同,请执行以下操作之一(取决于Python版本)和样式:
1 | if all(dict_a[key] == dict_b[key] for key in dict_a.viewkeys() & dict_b.viewkeys()) |
1 | if all(dict_a[key] == dict_b[key] for key in set(dict_a) & set(dict_b)) |
号
为了更具体地处理"它们是相同的值吗"…
1 2 3 4 5 6 7 | for k, v in dict_a.iteritems(): try: ov = dict_b[k] except KeyError as e: continue if v == ov: pass # or whatever |
有关映射类型,请参见文档。您已经定义了对字典执行各种操作的运算符。