Как в python 3 отсортировать двумерный список по двум столбцам?
вот прям в лоб не сильно думая 
student_tuples = [
...         ('john', 'A', 15),
...         ('jane', 'B', 12),
...         ('dave', 'B', 10),
...         ('dave1', 'B', 11),
...         ('dave2', 'B', 1),
...     ]
... student_tuples.sort(key=lambda student: (student[1], student[2]))
student_tuples
[('john', 'A', 15), ('dave2', 'B', 1), ('dave', 'B', 10), ('dave1', 'B', 11), ('jane', 'B', 12)]
Метод sort в Python использует устойчивую сортировку, так что вы можете отсортировать дважды - сначала по одному полю, потом по другому.