Кортежите са тип тип данни на променлива, който ни позволява да съхраняваме множество обекти на едно място. Кортежът е подредена и неизменна (не можем да актуализираме елементи в кортеж) колекция от елементи. Има 4 вградени структури от данни на Python за съхраняване на елементи, една от тях е кортеж, а другите са List, Dictionary и Set, всяка със собствен набор от свойства и употреба. Изписани са в кръгли скоби.
cdr пълна форма
Сортиране на кортеж в Python
Използване на sort()
Методът sort() често се използва за сортиране на елементи от списък във възходящ ред, като първият елемент се сортира по подразбиране. Можем да сортираме кортеж, като първо го преобразуваме в списък и след това приложим тази функция. Тази функция сортира списъка на място и връща None.
Вход
tuple_ = ('Itika', 'Arshia', 'Peter', 'Parker') list(tuple_).sort() print(tuple_) print(type(tuple_))
Изход:
('Itika', 'Arshia', 'Peter', 'Parker')
Използване на sorted()
В Python използвайте вградената функция sorted(), за да сортирате Tuple. Кортежът трябва да бъде предаден като аргумент на функцията sorted(). Елементите на кортежа се сортират (по подразбиране) във възходящ ред в списъка, върнат от функцията. Можем да използваме кортеж, за да преобразуваме този тип данни в списъка в кортеж ().
Обратният параметър на функцията sorted() може също да укаже реда на сортиране. Възходящ е редът на сортиране по подразбиране. Елементите се сортират в низходящ ред, когато е зададено reverse=True. Можем също да посочим ключова функция, чиито върнати стойности се използват за сортиране на елементи. Взимаме кортеж tuple_, който има цели числа, и го сортираме във възходящ ред в следната програма.
Вход
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Изход:
Sorted Tuple : (1, 2, 3, 5, 6, 7, 24)
Сега сортираме кортежа в низходящ ред, използвайки същата функция. Предайте reverse=True на функцията sorted(), за да сортирате кортежа в низходящ ред.
Вход
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_, reverse=True)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Изход:
Sorted Tuple : (24, 7, 6, 5, 3, 2, 1)
Сортиране на кортеж въз основа на ключова функция
Ключът е функция, която приема стойност и връща стойност. За всеки от елементите в кортежа се прилага тази ключова функция и върнатата стойност се използва за сравнение за сортиране на елементите. В следващата програма сортираме кортеж от низове въз основа на дължината на низовете. В този случай можем да използваме вградената функция len() като ключ.
Вход
мултиплексор
tuple_ = ('abhd', 'sbchcwsc', 'sjs', 'sxshs') sorted_ = tuple(sorted(tuple_, key=len)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Изход:
Sorted Tuple : ('sjs', 'abhd', 'sxshs', 'sbchcwsc')
Списък за сортиране на кортежи
Използване на sorted()
Нека да разгледаме как да сортирате списък в Python с помощта на кортеж. Помислете за следния сценарий: искаме да сортираме списъка с кортежи. Трябва да сортираме кортежи според всеки ключ, който ни е даден. Това може да се постигне с помощта на функцията sorted(), която сортира елементи с помощта на ключ и съхранява индекса на ключа за сортиране на дадените кортежи. Изпълнението на Python на този подход е както следва:
Вход
# Sorting list of tuples according to a key def middle(n): return n[1] # function to sort the tuple def sort(list_of_tuples): return sorted(list_of_tuples, key = middle) # driver code list_ = [(34, 21, 56), (24, 12, 32), (42, 34, 42), (27, 11, 32)] print('Sorted list of Tuples:'), print(sort(list_))
Изход:
какво е хибернация в java
Sorted list of Tuples: [(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)]
Използване на Bubble Sort
Bubble sort е просто сортиращ алгоритъм за сортиране на списък от произволен брой елементи. Ако съседните елементи в даден списък са в неправилен ред, той ги разменя. След това повтаря този процес, докато всички елементи бъдат сортирани.
В този пример ще използваме алгоритъма за балонно сортиране, за да сортираме списък от кортежи.
Вход
roll = [('Arshia', 26), ('Itika', 53), ('Peter', 82), ('Parker', 74), ('MJ', 45)] first = 0 last = len(roll) for k in range(0, last): for l in range(0, last-k-1): if (roll[l][first] > roll[l + 1][first]): new_item = roll[l] roll[l]= roll[l + 1] roll[l + 1]= new_item print(roll)
Изход:
[('Arshia', 26), ('Itika', 53), ('MJ', 45), ('Parker', 74), ('Peter', 82)]