2024-09-29 02:20:44 发布
网友
我有一些嵌套的数据结构,每一个都像:
[ ('foo', [ {'a':1, 'b':2}, {'a':3.3, 'b':7} ]), ('bar', [ {'a':4, 'd':'efg', 'e':False} ]) ]
我需要比较这些结构,看看是否有什么不同。除了编写一个函数来显式地遍历结构之外,是否有一个现有的库或方法来进行这种递归比较?
内置的聚合类型(list、tuple、dict等)已经支持相等和关系比较。对于您创建的类型,您需要实现rich comparison methods。
list
tuple
dict
您的示例数据结构已经进行了适当的相等测试,因为您正在使用正确实现__eq__和__ne__的内置数据类型,包括递归到嵌套值中。
__eq__
__ne__
如果要包含自己的类,则需要同时实现这两个方法(请注意,实现__eq__并不意味着实现一个!=比较您的__eq__将被调用,您还必须实现__ne__)。
如果我不需要在Python本身中使用diff,我可能最终会破解它。将两者转换为yaml,并对它们运行diff。:天
内置的聚合类型(
list
、tuple
、dict
等)已经支持相等和关系比较。对于您创建的类型,您需要实现rich comparison methods。您的示例数据结构已经进行了适当的相等测试,因为您正在使用正确实现
__eq__
和__ne__
的内置数据类型,包括递归到嵌套值中。如果要包含自己的类,则需要同时实现这两个方法(请注意,实现
__eq__
并不意味着实现一个!=比较您的__eq__
将被调用,您还必须实现__ne__
)。如果我不需要在Python本身中使用diff,我可能最终会破解它。将两者转换为yaml,并对它们运行diff。:天
相关问题 更多 >
编程相关推荐