Как да сортирате списъци в Python

How Sort Lists Python



Тази статия ще обхваща ръководство за сортиране на списъци в Python. Обект от списък на Python е колекция от един или повече елементи, разделени със запетая. Това е обект, който може да се повтаря и до неговите елементи може да се стигне чрез повторение на списъка с помощта на циклични изрази и други изрази. Можете да сортирате списък на Python, като използвате сортиране и сортирани методи, и двата са обяснени в статията. Всички примерни кодове в тази статия са тествани с Python 3.9.5 в Ubuntu 21.04.

Метод за сортиране

Методът за сортиране сортира списък на място. С други думи, той ще промени обекта на списъка, който ще сортирате, и пренареди неговия елемент. Ако не се нуждаете от оригиналния списък и нямате нищо против списъкът да промени реда на елементите си на място, това е най-ефективният метод в Python за сортиране на списък. Помислете за този пример:







на= [2, 8, 6, 4]

на.вид()

печат (на)

След като стартирате горната извадка от код, трябва да получите следния изход:



[2, 4, 6, 8]

Първият израз в извадката на код дефинира списък. След това методът за сортиране се извиква в списъка. Когато отпечатате списъка, можете да видите, че реда на оригиналния списък е променен.



По подразбиране Python сортира списък във възходящ ред. Ако искате да сортирате списък в низходящ ред, използвайте обратен метод, както е показано в примерния код по -долу:





на= [2, 8, 6, 4]

на.вид()

на.обратен()

печат (на)

След като стартирате горната извадка от код, трябва да получите следния изход:

[8, 6, 4, 2]

Обратният метод също променя списък на Python на място, без да създава нов списък.



Ако вашият списък съдържа низови елементи, извикването на метода за сортиране в него ще го подреди по азбучен ред, където символите и числата са подредени първо. Разгледайте примерния код по -долу:

на= ['с', 'да се', 'С', '4', '#']

на.вид()
печат (на)

След като стартирате горната извадка от код, трябва да получите следния изход:

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

Можете също да използвате обратния метод в списък, съдържащ низови елементи.

на= ['с', 'да се', 'С', '4', '#']

на.вид()

на.обратен()

печат (на)

След като стартирате горната извадка от код, трябва да получите следния изход:

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

Сортиран метод

Сортираният метод също сортира Python списък по същия начин като метода сортиране. Въпреки това, вместо да променя оригиналния списък, той връща нов списък, така че оригиналният ви списък да остане недокоснат в случай, че искате да го използвате повторно. Помислете за кода по -долу:

списък1= ['с', 'да се', 'С', '4', '#']

списък2= сортирани(списък1)

печат (списък1,списък2)

След като стартирате горната извадка от код, трябва да получите следния изход:

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

Можете да видите в изхода, че list1 е непокътнат и list2 вече има сортирани елементи. Можете също да използвате обратния метод в list2, за да промените методологията му за подреждане.

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

Можете да използвате обратния аргумент като алтернатива на обратната функция в методите за сортиране и сортиране, за да получите сортиран списък в низходящ ред. Просто му въведете True стойност, за да промените реда на сортиране:

списък1= ['с', 'да се', 'С', '4', '#']

списък2= сортирани(списък1,обратен=Вярно)

печат (списък1,списък2)

След като стартирате горната извадка от код, трябва да получите следния изход:

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

Използване на клавишна функция за задаване на собствена логика за сортиране на елементи от списък

Както в методите за сортиране, така и в сортирани, можете да посочите допълнителен ключов аргумент, който приема извикваща се функция като своя стойност. Този ключов аргумент може да бъде присвоен на съществуваща функция от вградени модули на Python или можете да предоставите своя собствена функция с персонализирана логика. Разгледайте примерния код по -долу:

списък1= ['а б В Г Д', 'xyz', 'ijkl']

списък2= сортирани(списък1,ключ=лен)

печат (списък1,списък2)

списък1.вид(ключ=лен)

печат (списък1)

След като стартирате горната извадка от код, трябва да получите следния изход:

['а б В Г Д', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'а б В Г Д']

['xyz', 'ijkl', 'а б В Г Д']

Примерът за код илюстрира използването на ключов аргумент както в методите за сортиране, така и в методите за сортиране. Предоставената му функция се нарича len, която определя дължината на низов обект или итерируем. Функцията или извикваната първоначално трябва да приема само един аргумент. Присвоявате го на ключовия аргумент, без да използвате скоби. Извикваната функция, предоставена на ключовия аргумент, се извиква при всеки елемент от списъка. Стойностите, върнати от този извикващ се метод, след това се използват като ключ за сортиране на списъка. Следователно, предоставянето на функцията len на ключовия аргумент сортира елементи от списък в реда на тяхната дължина, тоест от най -краткия до най -дългия. Както бе посочено по -рано, винаги можете да използвате обратния метод, за да обърнете методологията за сортиране.

Можете също да използвате своя собствена персонализирана функция или еднолинейни ламбда функции, които връщат стойността на един израз. Разгледайте примерния код по -долу, където списък съдържа кортежи от текущия инвентар на плодови щайги:

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

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

печат (списък1)

След като стартирате горната извадка от код, трябва да получите следния изход:

[('портокал', 51), ('банан', 76), ('манго', 99)]

Ламбда функцията е снабдена с инвентаризация на аргументи, която е всеки елемент от списъка под формата на кортеж. След това връща втория елемент на всеки кортеж като ключ (в индекс 1). След това функцията за сортиране сортира всички кортежи по втория си елемент във възходящ ред. Можете също да използвате обратната функция или обратния аргумент на крайния резултат, за да обърнете реда на сортиране.

Заключение

Това са някои начини, чрез които можете да сортирате съдържанието на итерируем списък в Python. Ключовият аргумент ви позволява да напишете своя собствена логика за сортиране, подходяща за приложения, които може да имат различни нужди от вградените методи за сортиране.