Питхон Лист сорт ()

Метода сорт () сортира елементе дате листе у одређеном растућем или опадајућем редоследу.

Синтакса sort()методе је:

 лист.сорт (кеи =…, реверсе =…)

Као алтернативу, такође можете да користите уграђену Питхонову функцију сортед () у исту сврху.

 сортирано (листа, кључ =…, обрнуто =…)

Напомена: Најједноставнија разлика између sort()и sorted()је: sort()директно мења листу и не враћа никакву вредност, док sorted()не мења листу и враћа сортирану листу.

сорт () Параметри

Подразумевано sort()не захтева никакве додатне параметре. Међутим, има два опциона параметра:

  • обрнуто - Ако Trueје сортирана листа обрнута (или сортирана у опадајућем редоследу)
  • кеи - функција која служи као кључ за поређење сортирања

Врати вредност из сорт ()

sort()Метод не врати никакву вриједност. Уместо тога, мења оригиналну листу.

Ако желите да функција врати сортирану листу уместо да промени оригиналну листу, користите sorted().

Пример 1: Сортирање дате листе

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)

Оутпут

 Сортирана листа: ('а', 'е', 'и', 'о', 'у')

Поредај по опадајућем редоследу

sort()Поступак прихвата reverseпараметар као изборног аргумент.

Подешавање reverse = Trueсортира листу у опадајућем редоследу.

 list.sort(reverse=True)

Наизменично за sorted(), можете користити следећи код.

 sorted(list, reverse=True)

Пример 2: Сортирајте листу у падајућем редоследу

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)

Оутпут

 Сортирана листа (у опадајућем): ('у', 'о', 'и', 'е', 'а')

Поредај помоћу прилагођене функције помоћу тастера

Ако желите сопствену имплементацију за сортирање, sort()метода такође прихвата keyфункцију као опционални параметар.

На основу резултата функције кључа, можете сортирати дату листу.

 list.sort(key=len)

Алтернативно за сортирано:

 sorted(list, key=len)

Овде lenје уграђена Питхонова функција за бројање дужине елемента.

Листа је сортирана на основу дужине сваког елемента, од најмањег до највишег броја.

Знамо да се тупле подразумевано сортира помоћу првог параметра. Погледајмо како прилагодити sort()методу сортирања помоћу другог елемента.

Пример 3: Сортирање листе помоћу тастера

 # take second element for sort def takeSecond(elem): return elem(1) # random list random = ((2, 2), (3, 4), (4, 1), (1, 3)) # sort list with key random.sort(key=takeSecond) # print list print('Sorted list:', random)

Оутпут

 Сортирана листа: ((4, 1), (2, 2), (1, 3), (3, 4))

Узмимо још један пример. Претпоставимо да имамо листу информација о запосленима у канцеларији у којој је сваки елемент речник.

Списак можемо сортирати на следећи начин:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # custom functions to get employee info def get_name(employee): return employee.get('Name') def get_age(employee): return employee.get('age') def get_salary(employee): return employee.get('salary') # sort by name (Ascending order) employees.sort(key=get_name) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=get_age) print(employees, end='') # sort by salary (Descending order) employees.sort(key=get_salary, reverse=True) print(employees, end='')

Оутпут

(('Име': 'Алан Туринг', 'старост': 25, 'плата': 10000), ('Име': 'Јохн Хопкинс', 'старост': 18, 'плата': 1000), ('Име ':' Микхаил Тал ',' старост ': 40,' плата ': 15000), (' Име ':' Схарон Лин ',' старост ': 30,' плата ': 8000)) ((' Име ':' Јохн Хопкинс ',' узраст ': 18,' плата ': 1000), (' Име ':' Алан Туринг ',' узраст ': 25,' плата ': 10000), (' Име ':' Схарон Лин ', 'старост': 30, 'плата': 8000), ('Име': 'Михаил Тал', 'старост': 40, 'плата': 15000)) (('Име': 'Михаил Тал', 'старост' : 40, 'плата': 15000), ('Име': 'Алан Туринг', 'старост': 25, 'плата': 10000), ('Име ':' Схарон Лин ',' старост ': 30,' плата ': 8000), (' Име ':' Јохн Хопкинс ',' старост ': 18,' плата ': 1000))

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

За други случај, доб ( int) се враћа и сортира по растућем редоследу.

У трећем случају, функција враћа плату ( int) и сортира се у опадајућем редоследу reverse = True.

Добра је пракса користити ламбда функцију када се функција може сажети у један ред. Дакле, горњи програм такође можемо написати као:

 # sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # sort by name (Ascending order) employees.sort(key=lambda x: x.get('Name')) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=lambda x: x.get('age')) print(employees, end='') # sort by salary (Descending order) employees.sort(key=lambda x: x.get('salary'), reverse=True) print(employees, end='')

Оутпут

(('Име': 'Алан Туринг', 'старост': 25, 'плата': 10000), ('Име': 'Јохн Хопкинс', 'старост': 18, 'плата': 1000), ('Име ':' Микхаил Тал ',' старост ': 40,' плата ': 15000), (' Име ':' Схарон Лин ',' старост ': 30,' плата ': 8000)) ((' Име ':' Јохн Хопкинс ',' узраст ': 18,' плата ': 1000), (' Име ':' Алан Туринг ',' узраст ': 25,' плата ': 10000), (' Име ':' Схарон Лин ', 'старост': 30, 'плата': 8000), ('Име': 'Михаил Тал', 'старост': 40, 'плата': 15000)) (('Име': 'Михаил Тал', 'старост' : 40, 'плата': 15000), ('Име': 'Алан Туринг', 'старост': 25, 'плата': 10000), ('Име ':' Схарон Лин ',' старост ': 30,' плата ': 8000), (' Име ':' Јохн Хопкинс ',' старост ': 18,' плата ': 1000))

Да бисте сазнали више о ламбда функцијама, посетите Питхон Ламбда функције.

Занимљиви Чланци...