如何比较Python中2D列表的相等性?

2024-05-21 00:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

给出两个列表:

a = [[1,2],[3,4]]
b = [[1,2],[3,4]]

我怎么写compare这样:

compare(a,b) => true

Tags: true列表compare
2条回答

你要这个吗:

>>> a = [[1,2],[3,4]]
>>> b = [[1,2],[3,4]]
>>> a == b
True

注意:==当列表无序时不有用,例如(注意顺序在ab中)

>>> a = [[3,4],[1,2]]
>>> b = [[1,2],[3,4]]
>>> a == b
False

请参阅此问题以获取进一步的参考:How to compare a list of lists/sets in python?

编辑:感谢@dr jimbob

如果要在排序后进行比较,可以使用sorted(a)==sorted(b)
但又有一点,如果c = [[4,3], [2,1]]那么sorted(c) == sorted(a) == False因为,sorted(c)是不同的[[2,1],[4,3]]不是深度排序

为此,必须使用链接答案中的技巧。因为我也在学习Python:)

简单:

def compare(a, b): return a == b

另一种方法是使用lambda创建匿名函数:

compare = lambda a, b: a == b

相关问题 更多 >