Python | Сортировать список по длине элементов
В этой программе нам нужно принять список и отсортировать его по длине элементов, присутствующих внутри.
Примеры:
Ввод: 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 при реализации сортировки известна как шаблон проектирования декорировать-сортировать-не украшать . Он выполняет следующие шаги:
- Каждый элемент списка временно заменяется «украшенной» версией, которая включает результат ключевой функции, примененной к элементу.
- Список отсортирован по естественному порядку ключей.
- Декорированные элементы заменены на оригинальные.
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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.