Python | Сортировать список по длине элементов

Опубликовано: 18 Января, 2022

В этой программе нам нужно принять список и отсортировать его по длине элементов, присутствующих внутри.
Примеры:

Ввод: list = ["rohan", "amy", "sapna", "muhammad",
                «аакаш», «раунак», «чинмой»]
Вывод: ['amy', 'rohan', 'sapna', 'aakash', 'raunak', 
         «чинмой», «мухаммад»]

Ввод: list = [["баран", "мохан", "аман"], ["гаурав"], 
                 [«Эми», «Сима», «Анкита», «Ринку»]]
Вывод: [['gaurav'], ['ram', 'mohan', 'aman'], 
          ['amy', 'sima', 'ankita', 'rinku']]

Примечание. Первый пример состоит из строк, 
длину можно рассчитать. Второй пример включает 
подсписок, которые также расположены в соответствии с 
длина. 

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Есть много способов сделать это. Кто угодно может использовать эту собственную алгоритмическую технику, но Python предоставляет нам различные встроенные функции для их выполнения. Встроенные функции включают sort () и sorted () вместе с ключевым параметром. Мы можем выполнить это двумя способами. Один из способов - отсортировать список, создав новый список, а другой - отсортировать его внутри данного списка, сэкономив место.

The syntax for sorting by creating a new list is:

sorted_list = sorted(unsorted_list, key=len)
# Python code to sort a list by creating 
# another list Use of sorted()
def Sorting(lst):
    lst2 = sorted(lst, key=len)
    return lst2
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad"
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

The syntax for sorting without creating a new list is:

unsorted_list.sort(key=len)
# Python code to sort a list without 
# creating another list Use of sort()
def Sorting(lst):
    lst.sort(key=len)
    return lst
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad"
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

Выход:

["amy", "rohan", "sapna", "aakash", "raunak", "chinmoy", "muhammad"]

Работающий:
Эта ключевая функция Python при реализации сортировки известна как шаблон проектирования декорировать-сортировать-не украшать . Он выполняет следующие шаги:

  1. Каждый элемент списка временно заменяется «украшенной» версией, которая включает результат ключевой функции, примененной к элементу.
  2. Список отсортирован по естественному порядку ключей.
  3. Декорированные элементы заменены на оригинальные.

The code for sorting by creating a new dummy list is:

import numpy
  
def Sorting(lst):
  
    # list for storing the length of each string in list 
    lenlist=[]   
    for x in lst:
         lenlist.append(len(x))     
  
    # return a list with the index of the sorted
    # items in the list
    sortedindex = numpy.argsort(lenlist)  
  
    # creating a dummy list where we will place the 
    # word according to the sortedindex list 
    lst2 = ["dummy"]*len(lst)   
  
    # print(sortedindex,lenlist)
    for i in range(len(lst)):    
  
        # placing element in the lst2 list by taking the
        # value from original list lst where it should belong 
        # in the sorted list by taking its index from sortedindex
        lst2[i] = lst[sortedindex[i]]     
                                          
    return lst2
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad"
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

Выход:

['amy', 'rohan', 'sapna', 'aakash', 'raunak', 'chinmoy', 'muhammad']


Ссылка:
stackoverflow

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.