Python 如何比较两种复杂的数据结构?

Python 如何比较两种复杂的数据结构?,python,data-structures,comparison,Python,Data Structures,Comparison,我有一些嵌套的数据结构,每个数据结构类似于: [ ('foo', [ {'a':1, 'b':2}, {'a':3.3, 'b':7} ]), ('bar', [ {'a':4, 'd':'efg', 'e':False} ]) ] 我需要比较这些结构,看看是否有任何差异。除了编写一个显式遍历结构的函数外,是否存在执行这种递归比较的现有库或方法?内置聚合类型(列表,元组,dict等)已经支持相等和关系比较。对于您创建的类型,您需要实现。您的示例数据结构

我有一些嵌套的数据结构,每个数据结构类似于:

[ ('foo', [ {'a':1, 'b':2},
                 {'a':3.3, 'b':7} ]),
  ('bar', [ {'a':4, 'd':'efg', 'e':False} ])   ]

我需要比较这些结构,看看是否有任何差异。除了编写一个显式遍历结构的函数外,是否存在执行这种递归比较的现有库或方法?

内置聚合类型(
列表
元组
dict
等)已经支持相等和关系比较。对于您创建的类型,您需要实现。

您的示例数据结构已经进行了适当的相等性测试,因为您使用的内置数据类型正确地实现了
\uuuuuuueq\uuu
\une\uuuuuu
,包括递归到嵌套值


如果你想包含你自己的类,你需要实现这两种方法(注意,实现
\uuuuuueq\uuuu
并不意味着如果你做一个!=比较,你的
\uuuueq\uuuuu
将被调用,你也必须实现
\uu ne\uuuu

如果我不需要在Python中使用diff,我可能最终会破解它。将两者转换为yaml,并在其上运行差异:D

你在和什么做比较?你需要看看它们是否相等,还是真正找出它们的不同之处?如果它们不同,就找出它们的不同之处。要想知道它们的不同之处,请看: