Автор оригинала: Team Python Pool.
6 Уникальных способов сортировки списка списков в Python
Списки-это один из основных типов данных в python. Это так же, как массив в других языках программирования, таких как C++ или Java. И когда мы хотим упорядочить и сохранить данные в некоторой иерархической форме (связанные данные), мы используем вложенные списки. Вложенный список-это не что иное, как список, содержащий множество других списков или списков списков. В этой статье мы рассмотрим способы, с помощью которых мы можем сортировать список списков в python.
Например, предположим, что у вас есть некоторые данные, содержащие Название транспортного средства, Тип транспортного средства, Среднее значение, например-
Название велосипеда | Модель | Пробег велосипеда |
Баджадж Пульсар | Bajaj Pulsar 220 F | 40kmpl |
Телевизоры Apache | телевизоры apache rtr 160 | 50kmpl |
Yamaha | Yamaha YZF R15 Ver 3.0 | 45 км / ч |
Теперь, если мы хотим упорядочить эти данные в python. Без всякого сомнения, для этого мы будем использовать вложенный список. Вот так – [[‘Bajaj Pulsar’,’220 F’,40],[‘TVS Apache’,’rtr 160′,50],[‘Yamaha’,’YZF R15 Ver 3.0′,45]]
Теперь мы хотим отсортировать эти данные по их пробегу или, предположим, по их именам, как мы это сделаем? Давайте рассмотрим некоторые способы достижения того же.
Различные способы сортировки списка списков в python
- Сортировка данных по 1 – му столбцу
- Сортировка данных с помощью любого другого столбца
- Сортировка списка списков по длине
- Как отсортировать список списков по сумме элементов
- Сортировка списка списков в порядке убывания
- Создание собственной программы для сортировки списка списков в Python
1. Сортировка данных по 1-му столбцу
Отсортировать данные по 1 – м столбцам в порядке возрастания.
list1=[['Bajaj Pulsar','220 F',40],['Yamaha','YZF R15 Ver 3.0',45],['TVS Apache','rtr 160',50]] # Using the key parameter of sort method. # if we use the sort method, the sorting take place in the list itself list1.sort() print(list1)
Выход-
[['Bajaj Pulsar', '220 F', 40], ['TVS Apache', 'rtr 160', 50], ['Yamaha', 'YZF R15 Ver 3.0', 45]]
Когда мы хотим отсортировать список в соответствии с первым href=”https://en.wikipedia.org/wiki/Column”>колонны, нам не нужно делать ничего особенного. Нам просто нужно делать все как обычно. Давайте рассмотрим другой способ достижения того же. href=”https://en.wikipedia.org/wiki/Column”>колонны, нам не нужно делать ничего особенного. Нам просто нужно делать все как обычно. Давайте рассмотрим другой способ достижения того же.
Описанный выше метод сортирует данные в самом исходном списке. Если мы не хотим вносить изменения в исходный список, мы можем использовать следующий метод.
list1=[['Bajaj Pulsar','220 F',40],['Yamaha','YZF R15 Ver 3.0',45],['TVS Apache','rtr 160',50]] print(sorted(list1)) # lets see if our original list has changed or not print(list1)
[['Bajaj Pulsar', '220 F', 40], ['TVS Apache', 'rtr 160', 50], ['Yamaha', 'YZF R15 Ver 3.0', 45]]
Теперь давайте посмотрим на наивный метод, используемый для достижения нашей цели.
list1=[['Bajaj Pulsar','220 F',40],['Yamaha','YZF R15 Ver 3.0',45],['TVS Apache','rtr 160',50]] # Iterating through one the list. #There is no element with which we will compare the last element, #so we are not including the last element for i in range(len(list1)-1): # if the next element is greater then the next element, swap it. if list1[i][0]>list1[i+1][0]: [i+1][0],list1[i][0] print(list1)
[['Bajaj Pulsar', '220 F', 40], ['TVS Apache', 'YZF R15 Ver 3.0', 45], ['Yamaha', 'rtr 160', 50]]
2. Сортировка данных с помощью любого другого столбца
Для сортировки данных с помощью любого другого столбца мы можем использовать параметр “ключ”. Мы передадим лямбда-функцию в качестве аргумента ключевого параметра.
Использование столбца-2:
list1=[[2,100],[6,20],[10,19],[4,54]] # Sorting the data using second column- #x[1] indicates columns 2 as index in array starts with 0. x:x[1]) #sorting has took place in the original list print(list1)
[[10, 19], [6, 20], [4, 54], [2, 100]]
Аналогично, если мы хотим отсортировать данные с помощью 3 – го столбца, мы передадим что-то вроде этого в ключевом параметре-lambda x:x[2]
3. Сортировка списка списков по длине
Если мы хотим отсортировать список в соответствии с длиной списков внутри списка, мы можем использовать ключ как “len”.
list1=[[100,200,300,400,500],[100,200,300],[100,150,200,400]] # using the key as len) print(list1)
[[100, 200, 300], [100, 150, 200, 400], [100, 200, 300, 400, 500]]
4. Как отсортировать список списков по сумме элементов
Если мы хотим отсортировать список по сумме элементов внутреннего списка, мы можем использовать ключ как “сумма”.
# sum of list inside list - 1050,600,850 list1=[[10,200,300,40,500],[100,200,300],[100,150,200,400]] # using the key as sum) print(list1)
[[100, 200, 300], [100, 150, 200, 400], [10, 200, 300, 40, 500]]
5. Сортировка списка списков в порядке убывания
Давайте теперь отсортируем список в порядке убывания. Мы можем использовать обратный параметр метода сортировки.
list1=[[3,5,111],[16,23,21],[1,2,3,4]] # for descending order set) print(list1)
[[16, 23, 21], [3, 5, 111], [1, 2, 3, 4]]
Мы также можем отсортировать список по второму элементу и в порядке убывания.
list1=[[3,5,111],[16,23,21],[1,2,3,4],[100,1,31,12]] # for descending order set # to sort data by 2nd element, use key parameter) print(list1)
[[16, 23, 21], [3, 5, 111], [1, 2, 3, 4], [100, 1, 31, 12]]
6. Создание собственной программы для сортировки списка списков в Python
Давайте создадим функцию, которая будет сортировать список по заданному номеру столбцов.
def sort_lists(list1,c): for i in range(len(list1)-1): # if the next element is greater then the next element, swap it. # c is the column according to which you want to sort the data if list1[i][c]>list1[i+1][c]: [i+1][c],list1[i][c] return list1 list1=[['Bajaj Pulsar','220 F',40],['Yamaha','YZF R15 Ver 3.0',50],['TVS Apache','rtr 160',45]] sort_lists(list1,c)
[['Bajaj Pulsar', '220 F', 40], ['Yamaha', 'YZF R15 Ver 3.0', 45], ['TVS Apache', 'rtr 160', 50]]
Надо Читать:
- Как преобразовать строку в нижний регистр в
- Как вычислить Квадратный корень
- Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
- Лучшая книга для изучения Python
Вывод
Мы видели много способов, с помощью которых мы можем сортировать список по элементам списков внутри списка в python. Кроме того, мы можем сортировать данные по длине списка, добавлению элементов списка, по разным столбцам в списке. Мы также можем использовать обратный параметр для сортировки списка в порядке убывания.
Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.
Счастливого кодирования!