Како сортирати листе у Питхону

How Sort Lists Python



Овај чланак ће обухватити водич за сортирање листа у Питхону. Објекат Питхон листе је збирка једне или више ставки раздвојених зарезима. То је итерабилни објекат и његовим елементима се може приступити понављањем по листи помоћу петљи и других израза. Питхон листу можете сортирати помоћу сортирања и сортираних метода, обе су објашњене у чланку. Сви узорци кода у овом чланку тестирани су са Питхон 3.9.5 у Убунту 21.04.

Метода сортирања

Метода сортирања сортира листу на месту. Другим речима, то ће изменити објекат листе који ћете сортирати и преуредити његов елемент. Ако вам није потребна оригинална листа и не смета вам што листа мења редослед елемената, ово је најефикаснији метод у Питхону за сортирање листе. Размотримо овај пример:







тхе= [2, 8, 6, 4]

тхе.врста()

принт (тхе)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:



[2, 4, 6, 8]

Прва наредба у узорку кода дефинише листу. Затим се на листи позива метода сортирања. Када одштампате листу, видећете да је редослед оригиналне листе промењен.



Подразумевано, Питхон сортира листу у растућем редоследу. Ако желите да сортирате листу у опадајућем редоследу, користите обрнути метод, као што је приказано у доњем примеру кода:





тхе= [2, 8, 6, 4]

тхе.врста()

тхе.обрнуто()

принт (тхе)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

[8, 6, 4, 2]

Обрнути метод такође мења Питхон листу на месту без стварања нове листе.



Ако ваша листа садржи низ елемената, позивање методе сортирања на њој ће је распоредити по абецедном реду где су први поређани симболи и бројеви. Погледајте узорак кода испод:

тхе= ['с', 'до', 'Са', '4', '#']

тхе.врста()
принт (тхе)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

['#', '4', 'до', 'с', 'Са']

Такође можете користити обрнути метод на листи која садржи низ елемената.

тхе= ['с', 'до', 'Са', '4', '#']

тхе.врста()

тхе.обрнуто()

принт (тхе)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

['Са', 'с', 'до', '4', '#']

Сортед Метход

Сортирани метод такође сортира Питхон листу, на исти начин као и сорт метода. Међутим, уместо да мења оригиналну листу, она враћа нову листу тако да оригинална листа остане нетакнута у случају да је желите поново користити. Размотрите доњи код:

лист1= ['с', 'до', 'Са', '4', '#']

лист2= сортирано(лист1)

принт (лист1,лист2)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

['с', 'до', 'Са', '4', '#'] ['#', '4', 'до', 'с', 'Са']

У излазу можете видети да је лист1 нетакнут и да лист2 сада има сортиране елементе. Такође можете користити обрнути метод на листи2 да бисте променили методологију наручивања.

Обрнути аргумент

Можете користити обрнути аргумент као алтернативу обрнутој функцији у методама сортирања и сортирања да бисте добили сортирану листу у опадајућем редоследу. Само унесите Труе вредност да бисте променили редослед сортирања:

лист1= ['с', 'до', 'Са', '4', '#']

лист2= сортирано(лист1,обрнуто=Истина)

принт (лист1,лист2)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

['с', 'до', 'Са', '4', '#'] ['Са', 'с', 'до', '4', '#']

Коришћење функције тастера за спецификацију сопствене логике за сортирање елемената листе

У методама сортирања и сортирања можете навести додатни аргумент кључа који за своју вредност узима функцију која се позива. Овом кључном аргументу се може доделити постојећа функција из уграђених Питхон модула или можете сопственој функцији обезбедити прилагођену логику. Погледајте узорак кода испод:

лист1= ['абцде', 'киз', 'ијкл']

лист2= сортирано(лист1,кључ=лен)

принт (лист1,лист2)

лист1.врста(кључ=лен)

принт (лист1)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

['абцде', 'киз', 'ијкл'] ['киз', 'ијкл', 'абцде']

['киз', 'ијкл', 'абцде']

Узорак кода илуструје употребу кључног аргумента у методама сортирања и сортирања. Функција која му је дата назива се лен која одређује дужину објекта низа или итерабилног. Функција или позивајућа изворно би требала узети само један аргумент. Додељујете га кључном аргументу без употребе заграда. Функција која се може дозвати кључном аргументу позива се на сваки елемент листе. Вредности враћене из ове методе која се позива се затим користе као кључ за сортирање листе. Дакле, опслуживање функције лен кључном аргументу сортира елементе листе по редоследу њихове дужине, односно од најкраћег до најдужег. Као што је раније речено, увек можете користити обрнути метод да бисте обрнули методологију сортирања.

Такође можете користити сопствену прилагођену функцију или ламбда функције са једним лином које враћају вредност једног израза. Погледајте доњи узорак кода где се на листи налазе хрпе тренутног инвентара гајби са воћем:

лист1= [('манго', 99), ('наранџаста', 51), ('банана', 76)]

лист1.врста(кључ=ламбдаинвентар: инвентар[1])

принт (лист1)

Након покретања горњег узорка кода, требало би да добијете следећи излаз:

[('наранџаста', 51), ('банана', 76), ('манго', 99)]

Ламбда функција је опремљена инвентаром аргумената, који је сваки елемент листе у облику туплеа. Затим враћа други елемент сваке торке као кључ (у индексу 1). Функција сортирања затим сортира све торке по свом другом елементу у растућем редоследу. Такође можете користити обрнуту функцију или обрнути аргумент на крајњем резултату да бисте обрнули редослед сортирања.

Закључак

Ово су неки начини помоћу којих можете сортирати садржај итерабилне листе у Питхону. Кључни аргумент вам омогућава да напишете сопствену прилагођену логику сортирања, погодну за апликације које могу имати другачије потребе од уграђених метода сортирања.