Сортировка списка списков в Python

  1. Используйте функцию itemgetter() из модуля оператора вместе с функцией sorted() для сортировки списка списков в Python
  2. Используйте выражение lambda вместе с функцией sorted() для сортировки списка списков в Python
  3. Используйте функцию sort() для сортировки списка списков в Python

Список - одна из самых мощных структур данных, используемых в Python. Мы можем отсортировать список в Python, расположив все его элементы в порядке возрастания или убывания в зависимости от требований.

У нас также могут быть вложенные списки в Python. Их можно рассматривать как список списков. При сортировке списка списков все внутренние списки упорядочиваются в соответствии с указанным индексом в качестве ключа.

В этом руководстве мы отсортируем список списков в Python на основе некоторых индексов.

Используйте функцию itemgetter() из модуля оператора вместе с функцией sorted() для сортировки списка списков в Python

Функция sorted() используется для сортировки списка в Python. По умолчанию список сортируется по возрастанию. Функция itemgetter() из модуля оператора принимает номер индекса в качестве параметра и возвращает элемент из набора данных, помещенный под этим номером индекса.

Следовательно, функция sorted(List_name, key=itemgetter(index_number)) сортирует список списков по элементу, расположенному в указанном index_number каждого внутреннего списка.

Например,

from operator import itemgetter
A = [[10, 8], [90, 2], [45, 6]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=itemgetter(0))))
B = [[50, 'Yes'], [20, 'No'], [100, 'Maybe']]
print("Sorted List B based on index 1: % s" % (sorted(B, key=itemgetter(1))))

Выход:

Sorted List A based on index 0: [[10, 8], [45, 6], [90, 2]]
Sorted List B based on index 1: [[100, 'Maybe'], [20, 'No'], [50, 'Yes']]

Для сортировки списка списков в порядке убывания используется параметр reverse вместе с параметром key и именем списка в функции sorted().

Например,

from operator import itemgetter
C = [[10, 8, 'Cat'], [90, 2, 'Dog'], [45, 6, 'Bird']]
print("Reversed sorted List C based on index 1: % s" % (sorted(C, key=itemgetter(1), reverse=True)))

Выход:

Reverse sorted List C based on index 1: [[10, 8, 'Cat'], [45, 6, 'Bird'], [90, 2, 'Dog']]

Используйте выражение lambda вместе с функцией sorted() для сортировки списка списков в Python

lambda - это простые однострочные функции в Python.

Функция sorted(List_name, key=lambda x:x[index_number]) используется для сортировки списка списков по элементу, расположенному в указанном index_number каждого внутреннего списка.

Например,

A = [[100, 'Yes'], [40, 'Maybe'], [60, 'No']]
print("Sorted List A based on index 0: % s" % (sorted(A, key=lambda x:x[0])))
B = [[2, 'Dog'], [0, 'Bird'], [7, 'Cat']]
print("Sorted List A based on index 1: % s" % (sorted(B, key=lambda x:x[1])))

Выход:

Sorted List A based on index 0: [[40, 'Maybe'], [60, 'No'], [100, 'Yes']]
Sorted List B based on index 1: [[0, 'Bird'], [7, 'Cat'], [2, 'Dog']]

Точно так же мы можем использовать параметр reverse, чтобы получить результат в порядке убывания.

Например,

C = [[60, 5], [90, 7], [30, 10]]
print("Reversed sorted List C based on index 0: % s" % (sorted(C, key=lambda x:x[0], reverse=True)))

Выход:

Reversed sorted List C based on index 0: [[90, 7], [60, 5], [30, 10]]

Используйте функцию sort() для сортировки списка списков в Python

Метод sort() сортирует список списков в Python по первому элементу каждого внутреннего списка. Этот метод вносит изменения в сам исходный список. Мы используем параметр reverse для сортировки по убыванию.

Например,

A = [[55, 90], [45, 89], [90, 70]]
A.sort()
print("New sorted list A is % s" % (A))
A.sort(reverse=True)
print("New reverse sorted list A is % s" % (A))

Выход:

New sorted list A is [[45, 89], [55, 90], [90, 70]]
New reverse sorted list A is [[90, 70], [55, 90], [45, 89]]

Для сортировки данного списка по длине внутренних списков используется параметр key=len.

Например,

A = [[5, 90, 'Hi', 66], [80, 99], [56, 32, 80]]
A.sort(key=len)
print("New sorted list A is % s" % (A))

Выход:

New sorted list A is [[80, 99], [56, 32, 80], [5, 90, 'Hi', 66]]

Сопутствующая статья - Python List

  • В чем разница между списочными методами добавлять и расширять
  • Как преобразовать список в струну на Python
  • Как соединить два или несколько списков на Python
  • В чем разница между делом, удалением и попаданием в списки Pythonа