Всіх вітаю! У цій статті ми розглянемо дві вбудовані функції під назвами sorted() та sum(). Також наведемо приклади до кожної з цих функцій у коді.
Функція sorted()
Функція sorted() приймає ітерований тип даних (список, кортеж, множина тощо) у якості параметра та сортує його елементи деяким чином:
numbers_list = [10, 5, 20, 15, 25, 30, 35, 50, 45, 40]
sorted_numbers = sorted(numbers_list)
print("Sorted list:", sorted_numbers)
print("Original list:", numbers_list)Sorted list: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Original list: [10, 5, 20, 15, 25, 30, 35, 50, 45, 40]Також треба зазначити, що функція sorted() створює новий об’єкт, де дає нам вже відсортований тип даних. У нашому випадку першочерговий список та той, який ми помістили у функцію sorted() — це два різні списки, а не один. Тому списки numbers_list та sorted_numbers є різними об’єктами.
Також sorted() має ще й параметри key і reverse. Параметр key дозволяє вказати за яким принципом сортувати елементи. Наприклад, ми хочемо сортувати елементи за їх значенням факторіалу:
import math
numbers_list = [5, 3, 44, 18, 23, 0, 10, 2, 52, 34]
sorted_numbers = sorted(numbers_list, key=math.factorial)
print("Sorted list:", sorted_numbers)
print("Original list:", numbers_list)Sorted list: [0, 2, 3, 5, 10, 18, 23, 34, 44, 52]
Original list: [5, 3, 44, 18, 23, 0, 10, 2, 52, 34]Параметр reverse у свою чергу просто сортує список у зворотному напрямку та приймає тільки значення True і False. Наводимо приклад:
numbers_list = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
sorted_numbers = sorted(numbers_list, reverse=True)
print("Sorted list:", sorted_numbers)
print("Original list:", numbers_list)Sorted list: [50, 45, 40, 35, 30, 25, 20, 15, 10, 5]
Original list: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]Також sorted() може працювати ще й із словниками. Ось наочний приклад як це відбувається:
albums_rating = {"The Death of Slim Shady": "Eminem",
"Let God Sort 'Em Out": "Clipse",
"God Does Like Ugly": "JID",
"DAMN": "Kendrick Lamar",
"KID A": "Radiohead"}
sorted_rating = sorted(albums_rating.keys())
print("Alphabetically sorted album's titles:", sorted_rating)
sorted_rating = sorted(albums_rating.values())
print("Alphabetically sorted artist's names:", sorted_rating)Alphabetically sorted album's titles: ['DAMN', 'God Does Like Ugly', 'KID A', "Let God Sort 'Em Out", 'The Death of Slim Shady']
Alphabetically sorted artist's names: ['Clipse', 'Eminem', 'JID', 'Kendrick Lamar', 'Radiohead']Як бачимо ключі та значення відсортовані за позицією у абетці:
Alphabetically sorted album's titles: ['DAMN', 'God Does Like Ugly', 'KID A', "Let God Sort 'Em Out", 'The Death of Slim Shady']
Alphabetically sorted artist's names: ['Clipse', 'Eminem', 'JID', 'Kendrick Lamar', 'Radiohead']Тобто якщо у функції sorted() вказаний тільки ітерований тип даних з числовими елементами, то функція сортує цей тип даних від меншого значення до більшого. Якщо ж вказаний тільки ітеррований тип даних з рядковими елементами, тоді функція сортує їх за алфавітним порядком.
Функція sum()
Функція sum() також приймає ітерований тип даних, але навідміну від sorted() вона сумує усі елементи та виводить результат:
numbers_list = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
summed_numbers = sum(numbers_list)
print("Original list:", numbers_list)
print("Element's sum:", summed_numbers)Original list: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Element's sum: 275Зрозуміло, що sum() приймає лише числові значення. Також дана функція має ще параметр start, який приймає числове значення та додає його до остаточного результату. Розглянемо приклад, де параметр start буде дорівнювати 20, тому і кінцевий результат суми збільшить з 275 до 295:
numbers_list = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
summed_numbers = sum(numbers_list, 20)
print("Original list:", numbers_list)
print("Element's sum:", summed_numbers)Original list: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Element's sum: 295Висновок
У цьому матеріалі ми ознайомилися з функціями sorted() та sum() та їхніми параметрами. Оглянули роботу кожної функції на прикладах і навчилися їх викоритовувати у коді. Всім дякую за увагу!