Как сравнить 2D-списки для равенства в Python?

Учитывая два списка:

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

Как я напишу compare, чтобы:

compare(a,b) => true

Ответ 1

Вы хотите:

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

Примечание: == не полезно, когда список неупорядочен, например (порядок уведомлений в a и в b)

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

См. этот вопрос для дополнительной справки: Как сравнить список списков/наборов в python?

Изменить: благодаря @dr jimbob

Если вы хотите сравнить после сортировки, вы можете использовать sorted(a)==sorted(b).
Но снова точка, если c = [[4,3], [2,1]] тогда sorted(c) == sorted(a) == False, потому что sorted(c) отличается [[2,1],[4,3]] (не в глубине)

Для этого вам нужно использовать методы из связанного ответа. Поскольку я также изучаю Python:)

Ответ 2

Простой:

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

Другой способ: lambda создать анонимную функцию:

compare = lambda a, b: a == b