Рубрики
Без рубрики

6 Уникальных способов сортировки списка списков в Python

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

Автор оригинала: 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. Сортировка данных по 1 – му столбцу
  2. Сортировка данных с помощью любого другого столбца
  3. Сортировка списка списков по длине
  4. Как отсортировать список списков по сумме элементов
  5. Сортировка списка списков в порядке убывания
  6. Создание собственной программы для сортировки списка списков в 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)
python сортирует список списков
python сортирует список списков

Выход-

[['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. Кроме того, мы можем сортировать данные по длине списка, добавлению элементов списка, по разным столбцам в списке. Мы также можем использовать обратный параметр для сортировки списка в порядке убывания.

Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!