Если у меня есть список
listOfFiles = [<str>,<intA>,<intB>]
Как мне отсортировать этот список сначала по intA, а затем по intB?
Конечный результат будет выглядеть как
<str>,1,1 <str>,1,2 <str>,1,3 <str>,2,1 <str>,2,2 etc
Используйте составной ключ (или, скорее, последовательность в качестве ключа).
listOfFiles.sort(key=operator.itemgetter(1, 2))
Это также работает:
listOfFiles.sort(key=lambda x: (x[1], x[2]))
Сортировка списка Python выполняется на месте и гарантированно будет стабильной после 2.4 (я полагаю, это могло быть 2.5).Это означает, что вы можете сортировать так и должны получать нужные результаты:
listOfFiles.sort(key = lambda x: x[2]) listOfFiles.sort(key = lambda x: x[1])
Я предполагаю, что у вас действительно есть список списков или список кортежей.Если нет, приведите более полный пример вашей структуры данных.