python - 如何对两个元组列表进行深度相等性比较?

标签 python

我想比较两个元组列表:

larry = [(1,'a'), (2, 'b')]
moe = [(2, 'b'), (1, 'a')]

这样列表中项目的顺序可能会有所不同。 是否有库函数可以执行此操作?

>> deep_equals(larry, moe)
True

最佳答案

如果我理解你的话,你的元组代表集合,你的列表代表集合。显而易见的事情是将它们转换为集合:

def setterific(l):
    return frozenset(frozenset(p) for p in l)

setterific(larry) == setterific(moe)

这使用了 frozensets,因为在 python 中不能有集合的集合(因为集合是可变的);见How can I create a Set of Sets in Python? .

如果您只有一层集合,请使用 frozenset(larry) == frozenset(moe)

关于python - 如何对两个元组列表进行深度相等性比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360057/

相关文章:

python - Numpy 数组元素与 Float64 的比较

python - 使用日期时间创建条形图

python - 使用 pip 安装 pyopenssl 时出错

c++ - vector< vector <double>> 与 swig 和 python 的参数

python - 是否可以在 SQLAlchemy 中创建一个可以创建父记录的事件监听器?

python - PyInstaller ErroNo2 "No such file or directory: ' akespec'"

带有括号和引号的 python 3.5 syntaxerror

python - 在 Python 中生成 IP 范围

python - numpy 和 pysparse 浮点表示问题

python - 如何将列表中的所有数字相乘以显示新列表?