Как отсортировать значения по столбцу массива, не используя pandas?

Допустим, есть массив:

[[8, 7, 5],
 [2, 3, 1],
 [6, 9, 4]]

Какой код надо написать, чтобы на выходе был массив (отсортированный по 1-му столбцу):?

[[2, 3, 1],
 [6, 9, 4],
 [8, 7, 5]]

Если значения в первом столбце бы совпадали, то их бы надо было отсортировать по второму столбцу.


Ответы (1 шт):

Автор решения: MBo

Как ни странно:

a = [[8, 7, 5], [2, 3, 1], [6, 9, 4], [2,1,5]]
a.sort()
print(a)

>>[[2, 1, 5], [2, 3, 1], [6, 9, 4], [8, 7, 5]]

Структурные данные сравниваются по умолчанию по первому элементу, при равенстве - по второму и т.д.


Если второй столбец должен быть ключом:

a.sort(key = lambda x:x[1])
>> [[2, 1, 5], [2, 3, 1], [8, 7, 5], [6, 9, 4]]
→ Ссылка