Въведение в сортирането в Python

В даден момент от приложение или програма трябва да сортираме данни по някакъв ред, например да сортираме служителите на база заплата или въз основа на някакъв ранг, да сортираме списъка с продукти въз основа на цената на продукта и така нататък. В този случай програмистът трябва да внедри сортирането в дадена програма, ако разработчикът използва езика за програмиране python, той ще бъде много лесен за изпълнение. Python предоставя вградени функции за изпълнение на основни функции за сортиране или персонализиране на сортирането на гранулирано ниво. Има 2 вградени функции в python за сортиране.

Нека да видим как да сортираме различни типове данни, да сортираме данните в персонализиран ред.

  • Трябва да извършим сортиране върху колекцията от елементи или групи елементи, така че ще получим колекция от елементи в някакъв ред за сортиране. За сортиране сравнението трябва да се извърши между всеки елемент от колекцията и сравнението е възможно само и само ако те са един и същи тип данни, така че сортирането можем да извършим при събиране, ако са същите елементи от тип данни, например, цяло число до цяло число може да сравнява, но не и цяло число към низ.
  • Следващият момент е да създадем колекцията от елементи, в python, ние имаме списъци, корректиране, набор и речни структури от данни, които се използват за съхраняване на колекцията от елементи. Така че за извършване на сортиране трябва да има основно разбиране на тезите. Ще използваме Python 3, синтаксисът може да е малко по-различен, ако използвате и Python 2, и изходен пример.

Функция за сортиране в python

Има две вградени функции за сортиране в python.

  • вид()
  • сортирани ()

Две функции за сортиране са споменати по-долу:

1. сортиране ()

Методът sort () сортира елементите на даден списък от колекции в определен ред или Възходящ или Низходящ.

Синтаксисът на функцията sort () е:

list.sort(key = …, reverse = …)

  • key - ключът на параметъра определя функцията, която се използва за сравняване на сортиране.
  • Reverse - Обратният параметър, ако е истина, сортираният списък е обърнат, което означава сортиран в низходящ ред.

За да получите описанието на функцията за сортиране, използвайте командата help, както е дадено по-долу.

>>> lis=(1, 4, 3, 2) >>> help( lis.sort )

Нека започнем функцията за сортиране с примера.

Пример №1:

l = ( 20, 50, 10, 40, 60 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

изход:

Както в горния код, несортираният списък се създава (20, 50, 10, 40, 60) и допълнително прилага функцията sort (), която сортира списъка във възходящ ред и не връща нищо.

След това опитваме функция sort () на десетичен или плаващ тип данни.

Пример №2:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

изход:

След това опитваме функция сортиране () на типа данни за char.

Пример №3:

l = ( 'b', 'd', 'a', 'n', 'g') print("liist = ", l)
l.sort()
print("sorted liist = ", l)

изход:

След това се опитваме сортиране () функция на типа данни на String.

Пример №4:

l = ( "banana", "apple", "orange", "mango" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

изход:

След това опитваме функция sort () на различни елементи от типове данни.

Пример №5:

l = ( 89, 56.78, "apple" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

изход:

След това се опитваме сортиране () функция с аргументи за обръщане.

Пример №6:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("liist = ", l)
l.sort( reverse = True )
print("sorted liist = ", l)

изход:

В горния код се създава несортиран списък (26.7, 34.23, 67.45, 89.34, 23.18) и по-нататък се прилага функцията сортиране () с обратен = Вярно, стойността по подразбиране на обратната е False, която сортира списъка в обратен ред или низходящ ред.

След това ще опитаме функция sort () с ключови аргументи:

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

Нека започнем с примера, да предположим, че имаме списък от низове и искаме да сортираме списък въз основа на дължината на низовете в списъка във възходящ ред (най-кратък до най-дълъг). Вградената функция len () в python връща дължината на низа, така че len () може да се използва за предаване на ключовия аргумент.

Пример №7:

word = "Hello"
length = len(word)
print( "The length of word is ", length)
l = ( "aaa", "bbbbb", "cc", "ddd" ) print("liist = ", l)
print( "The length of list is ", len(l))
# length of the list is 4, because it contains 4 elements
# Now we sort the list based on the length of the list elements
l.sort( key = len )
print("Sorted liist = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort(key = len, reverse = True)
print("Sorted liist with reverse = ", l)

изход:

Полученият ред на list.sort (key = len) е списък на низовете за сортиране по ред от най-кратки до най-дълги. Като има предвид, че list.sort (key = len, reverse = True), в резултат на което редът на списъка е най-дълъг до най-късата дължина. Дължината на всеки елемент от списъка се определя от функцията len ().

След това, ние се опитваме сортиране () функция с ключ, преминаващ от потребителя да дефинира функцията:

Пример №8:

l = ( 'banana', 'orange', 'apple' ) print("liist = ", l)
# function return second element
def sort_onSecondChar(word):
return word(1) l.sort( key = sort_onSecondChar )
print("Sorted liist based on second character = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort( key = sort_onSecondChar, reverse = True)
print("Sorted liist based on second character with reverse = ", l)

изход:

Полученият ред на list.sort (key = sort_onSecondChar)) е списък на низовете за сортиране по ред на възходящ въз основа на втория знак. Като има предвид, че списъкът.sort (key = sort_onSecondChar, обратен = True) в резултат ред на списъка се намалява въз основа на втори знак. Сортирането на всеки елемент в списъка се определя от потребителя да дефинира функцията sort_onSecondChar ().

2. сортирани ()

Подредената () функция извиква в списъка или колекцията, тя връща новия сортиран списък. Функцията sorted () не редактира или променя списъка, от който се извиква, но връща сортирания списък в резултат на него.

Синтаксисът на сортирана () функция:

sorted(iterable, key, reverse)

  • iterable - списък, кортеж, низ, набор, замразен набор, речник на всяка колекция или итерабелен, които трябва да се сортират.
  • обратен обрат - посочете дали сортиран списък, който трябва да бъде обърнат или не (това е низходящ ред). то е
  • ключ - посочете функцията като ключ за сравнение за сортирането. Тя не е задължителна .

За да получите описанието на функцията за сортиране, използвайте командата help, както е дадено по-долу.

Разгледайте примерите:

Пример №9:

l = ( 2, 1, 3, 6, 5, 4 ) print("list = ", l)
sorted(l)
print( "The sorted list = ", l)

изход:

Обърнете внимание, че ние също можем да използваме list.sort () функцията, за да изпълняваме същата, но разликите са, функцията sort () променя самия списък на място и връща None като резултат от изхода. Друга разлика от функцията list.sort () е, че тя може да се прилага за единствения списък, докато sorted () може да се прилага за всяка колекция или подлежаща на повторение.

Нека да видим примера, когато създаваме кортеж (знаем, че за създаване на кортеж използвайте (и) скоби и функции на кортеж, ако е поръчано, той съхранява дубликати, не може да се прилага към индекса и той е неизменен) и прилагаме сортирана () функция,

Пример №10:

t = ( 60, 20, 40, 10 )
print("Tuple = ", t)
re=sorted(t)
#print return of sorted()
print( "The return sorted list of sorted() = ", re)
#we check what is there in t
print( "After sorted tuple = ", t)

изход:

Ако функцията sort (), приложена към кортежа, тя дава грешка „AttributeError:„ tuple “обект няма атрибут„ сортиране ““.

Така че функцията sort () не може да се прилага за кортежа, дори не може да се прилага за други колекции, освен списък.

След това ще видим някои примери с различни типове данни:

Пример № 11:

l = ( 2.89, 56.34, 45.23 ) print("List of floating numbers = ", l)
re=sorted(l)
#print return of sorted()
print( "The return list of sorted() floating numbers = ", re)
lc = ( 'l', 'e', 'g', 'a', 'd' ) print("List of characters = ", lc)
re=sorted(lc)
#print return of sorted()
print( "The return list of sorted() characters = ", re)

изход:

След това ще опитаме сортирана () функция с обратен параметър:

Нека разгледаме примера:

Пример №12:

l = ( 2, 1, 3, 6, 5, 4 ) print("List = ", l)
re=sorted(l, reverse=True )
#print return of sorted()
print( "The return list of sorted() with reverse = ", re)

изход:

След това ще видим сортирана () функция с ключовия параметър, по-долу код щракна преминаване на функция len () към ключовия параметър, така че функцията sorted () ще върне списък в ред за сортиране въз основа на дължината на елементите.

Пример № 13:

l = ('aaaa', 'bb', 'ccc', 'ddddd') print("List = ", l)
re=sorted(l, key = len )
#print return of sorted()
print( "The return list of sorted() with key = ", re)

изход:

След това ще видим сортирана () функция с ключов параметър, тъй като потребителят дефинира функцията, по-долу код щракна преминавайки функция returnSecond () към ключ параметър. Функцията returnSecond () е потребителят да определи функцията, която просто връща втория елемент, така че sorted () функцията връща нов сортиран списък в ред за сортиране въз основа на втория елемент от кортежа. Ако искаме да сортираме в основата на първия елемент, тогава редактираме функцията returnSecond (), за да върнем първия елемент като (L (0)).

Пример № 14:

# return second element for sort
def returnSecond( L ):
return L(1) # list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = returnSecond (returnSecond function which return second element so sort done based on seceond elemet)
sortedList = sorted(list, key = returnSecond)
# print list
print('The sorted list:', sortedList)

изход:

Ние променяме горния код, като използваме функцията lambda (функцията lambda е анонимна функция, симулира същото като вградените функции на C и C ++).

Пример № 15:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(1) (lambda function which return second element so sort done based on second element)
sortedList = sorted( list, key = lambda x : x(1))
print( "The sorted list = ", sortedList)

изход:

Горният код променя сортирането въз основа на първия елемент чрез промяна на функцията lambda.

Пример № 16:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(0) (lambda function which return first element so sort done based on first element)
sortedList = sorted( list, key = lambda x : x(0))
# print list
print('The sorted list:', sortedList)

изход:

Сега нека да създадем списък с подробности за студента и да съхраняваме детайлите на всеки ученик за кортежа, който ще използваме. Един кортеж съдържа един учебен запис, първият елемент в кортежа е името на ученика, вторият елемент е ролката не на ученика, а третият елемент е общите оценки на ученика. На следващо място, ние искаме да съхраняваме подробностите за учениците в реда на техните марки, така че нека започнем кодирането.

Пример № 17:

students = ( ('john', 1, 60), ('jane', 2, 70), ('dave', '3', 70.5), ('joseph', 1, 92) ) print( "The Student List = ", students)
# sorting the student list of tuple based on the third element that is marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The sorted list = ", sortedlist)
#reverese
sortedlist = sorted(students, key=lambda stud : stud(2), reverse=True)
print("The sorted list with reverse=True ", sortedlist)
# Display the student name and marks in sorting order of their marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The student names and marks in order of their marks")
print("name", "marks")
for x in sortedlist:
print(x(0), x(2))

изход:

заключение

Функцията sort () и sorted () използват за сортиране на колекцията. List.sort () редактира в самия списък, докато сортиран (списък) не редактиране на списъка връща новия сортиран списък. Функцията sort () се прилага само за списъка, докато функцията sorted () може да се прилага за цялата колекция като списък, кортеж, речник и всички.

Препоръчителни статии

Това е ръководство за сортиране в Python. Тук обсъждаме двете вградени функции за сортиране в python с програмата и изхода. Можете също да разгледате следната статия, за да научите повече -

  1. Променливи на Python
  2. Разрушител в Python
  3. Връзка към базата данни на Python
  4. Python редактори
  5. Типове данни PL / SQL
  6. Различни видове SQL данни с примери