Інформація про новину
  • Переглядів: 1075
  • Дата: 15-10-2021, 10:34
15-10-2021, 10:34

10.3. Структуровані вбудовані типи даних та їх опрацювання

Категорія: Інформатика





Попередня сторінка:  10.2. Арифметичні операції і вирази. Ста...
Наступна сторінка:   10.4. Використання текстових файлів для ...

Пригадайте, як поділяються типи даних у будь-якій мові програмування.

До структурованих типів даних, убудованих у мову Python, належать списки, кортежі, діапазони, множини, словники. Рядки теж є структурованими, але внаслідок широкого розповсюдження їх часто відносять і до простих. Ми розглядатимемо списки і словники, а також спеціальні функції та методи, застосовувані для їх опрацювання.

Пригадаємо, що усі типи даних у мові Python є об’єктами певних класів. Класи містять методи — програми, що виконують ту чи іншу функцію.

Метод викликається для конкретного об’єкта. Для виклику методу спочатку вказується об’єкт, потім крапка, за якою зазначається ім’я методу:

Нині Python — одна з найпопулярніших мов програмування, яка охоплює нові сфери застосування і останні 5 років входить до п'ятірки найзатребуваніших технологій.

10.3.1. Списки

Пригадайте, які списки ви використовували у повсякденній діяльності. Спробуйте сформулювати означення списку.

Список — це певна сукупність об'єктів будь-якого типу у квадратних дужках, які відокремлюються один від одного комою.

Список є одним з основних типів даних (приклад 1). У списках можна змінювати значення його елементів, збільшувати і зменшувати кількість елементів, здійснювати пошук потрібних елементів і впорядковувати їх. Отже, список є об’єктом, що змінюється.

Списки можуть бути вкладені в об’єкти інших типів.

Різновидом списків є масив. Різниця між списком і масивом полягає у тому, що у масивах значення елементів можуть бути лише одного типу, наприклад тільки цілі числа, тільки рядки, а у списках — будь-якого типу. Для того щоб зручніше орієнтуватися, списки позначатимемо ідентифікатором 1st.

У мові Python є значна кількість операцій, функцій і методів опрацювання списків. Далі розглядаються лише основні з них.

Списки бувають одновимірні й багатовимірні.

Одновимірні списки. Позиція елемента у списку задається індексом, який починається з нуля. Списки можна створювати простим перерахуванням елементів списку в квадратних дужках (приклад 2).

Розглянемо операції, які можна виконувати над списками:

Щоб звернутися до елемента списку, необхідно у квадратних дужках зазначити індекс елемента (нумерація елементів у списку починається з нуля)

# Виведення другого елемента

Значення елементів списку можна змінювати шляхом присвоювання їм нових значень

# Зміна значення другого елемента

# Виведення списку

Значення можна одночасно присвоїти декільком спискам

# Значення 6, 12, 9 присвоюються

# 3 спискам

# Виведення значень списків

# (значення списків однакові)

Операція зрізу дозволяє отримати певний діапазон значень, він має формат: сім'я списку>[початок: кінець: крок]. Усі параметри є необов'язковими

# Виділення елементів 3 1 до 3 включно

Об'єднання списків виконується за допомогою операції конкатенації

# Об'єднання списків

Наведемо найуживаніші функції опрацювання списків:

Іеп() — визначає довжину списку

# Довжина списку

sample!) — призначена для отримання списку з випадковими числами у заданому діапазоні. Вона міститься у модулі random і має таку структуру: sample(range(fliana30H), кількість елементів)

# імпортування модуля random

# Шість випадкових чисел

# у діапазоні 0-60

тах() і тіп() — призначені відповідно для визначення максимального і мінімального значень у списку

# Виведення максимального

# і мінімального елементів

choice!) — міститься у модулі random і слугує для вибору випадкового елемента зі списку

# імпортування модуля random

# Вибір випадкового елемента

list!) — перетворює рядок у список

# Перетворення рядка у список

Розглянемо основні методи опрацювання списків на наведених прикладах:

гетоуе(значення) — видаляє зі списку перший елемент, який містить вказане значення

clearQ — видаляє зі списку усі елементи

Іпс1ех(значення [, початок [, кінець]]) —

повертає індекс елемента, який має вказане значення.

За замовчуванням параметрів початок і кінець пошук елемента буде виконуватися від початку до кінця списку

count (значення) — призначений для визначення кількості елементів із вказаним значенням. Якщо елемент відсутній у списку, повертається значення 0

sortQ — слугує для сортування елементів списку. Він має таку загальну структуру: sort([key = None]L reverse = False]).

Як бачимо, параметри є необов'язковими. За замовчуванням сортування виконується за зростанням значень елементів з урахуванням регістра. Для сортування за спаданням слід вказати другий параметр таким: reverse = True. Відзначимо, що метод sort() перетворює старий список у новий

sorted(cnncoK[, reverse = False]) —

призначений для сортування списку і збереження старого

Особливості багатовимірних списків. У багатовимірних списках кожна група елементів списку береться у квадратні дужки, а весь список також міститься у квадратних дужках. У прикладі 3 наведено, як можна створити двомірний список.

Для наочності краще записувати списки по рядках (приклад 4).

Для звернення до елемента багатовимірного списку потрібно вказати у квадратних дужках усі його індекси. Так, звернутися до першого елемента першої групи двовимірного списку можна так:

Звертатися до усіх або частини елементів списку можна за допомогою операторів циклу for і while, а також функції range(), які розглядаються далі.

Приклад 5.

Дано список [17, 44, 5, 21, 22, 38, 9]. Розробити код, за допомогою якого вилучається зі списку елемент із максимальним значенням, після цього на другу позицію вставляється

число 19, упорядковується новий список у порядку зростання значень його елементів і виводиться на екран.

Код реалізації алгоритму наведено на рис. 10.5.

Результат виконання коду:

Приклад б.

Розробити код, за допомогою якого створюється список із шести випадкових цілих чисел у діапазоні від 0 до ЗО, визначається мінімальне значення і видаляється зі списку.

На місце мінімального значення вставляється число 777, а у кінець списку додається число 999. Після цього список упорядковується і виводиться на екран.

Код реалізації наведено на рис. 10.6.

Результат виконання коду:

Запитання для перевірки знань

Що називається списком?

Як можна замінити значення елемента списку?

Як здійснюється об'єднання списків?

Для чого слугують методи append]); removeO?

Поясніть сутність методу insert().

За допомогою яких методів виконується сортування елементів списку?

Поясніть порядок створення списку випадкових чисел.

Завдання для самостійного виконання

Знайдіть в інтерактивному режимі мінімальне і максимальне значення у списку [45, 23.5, 76, 29, 41].

В інтерактивному режимі у списку ["and", 44, "not", 77, 23] вилучіть другий елемент і на його місце вставте елемент "or".

Дано список [19, 41, 25, 41, 5, 41, 41]. Розробіть код визначення в ньому кількості чисел, рівних 41, і упорядкування списку за спаданням його значень.

Розробіть код, за допомогою якого виконується сортування списку [57, 29, 3, 87, 37, 46, 69] зі збереженням початкового списку.

Розробіть код, за допомогою якого створюється список із семи випадкових чисел в діапазоні від 5 до 15, відшукуються максимальне і мінімальне значення, вилучаються зі списку, після чого список упорядковується і виводиться на екран.

Розробіть код, за допомогою якого у списку [13, 29, 88, 7, 65, 22, 55, 123] визначається індекс числа 88 і на його місце вставляється число 111, після чого у кінець списку додається число 11.

10.3.2. СЛОВНИКИ

Пригадайте, якими словниками ви користувалися. Для чого вони призначені?

Словник — це набір об'єктів будь-якого типу, доступ до яких здійснюється не за допомогою індексу, а за допомогою ключа. Ключем можуть бути числа, рядки або кортежі. Значення елементів словника можна змінювати.

Словники можна створювати у різний спосіб. Найпростіший (приклад 1) — шляхом перелічення у фігурних дужках ключів і значень за структурою:

{ключ: значення, ключ: значення, ключ: значення}

Словник можна створити за допомогою функції dict() (приклади 2, 3), один із форматів якої є таким:

сіісї(ключ1 = значення!, ..., ключЦ = значенням)

Словники не є послідовностями, тому такі загальні операції, як отримання зрізу, конкатенації та інші, вони не підтримують.

Значення елементів словника можна змінювати.

Для звернення до елемента словника потрібно зазначити у квадратних дужках його ключ (приклад 4). Якщо елемент із ключем у словнику відсутній, то генерується виняток KeyError.

Наявність ключа у словнику можна перевірити за допомогою оператора in (приклад 5). Якщо ключ у словнику є, генерується значення True, інакше — False.

Швейцарець Ніклаус Вірт — жива легенда в світі програмування. Це блискучий інженер і глибокий дослідник, який у 1984 році був удостоєний премії Тюрінга.

Змінити значення елемента словника або додати новий елемент можна за допомогою його ключа (приклад 6).

Кількість ключів у словнику визначається за допомогою функції Іеп().

Видалити елемент зі словника можна за допомогою оператора del, вказавши його ключ у квадратних дужках (при-клад 7).

Мову Python відрізняє швидкість і простота скриптів. Разом із набором доступних бібліотек для роботи з мережами і файлами це робить її незамінним помічником системного адміністратора.

Розглянемо основні методи роботи зі словниками:

деДключ) — повертає значення, яке відповідає ключу. Якщо ключ відсутній, то повертається значення None

keys() — дозволяє отримати всі ключі словника. Можна використати для виведення всіх елементів словника з ключами за допомогою оператора циклу for. Елементи словника виводяться у довільному порядку, оскільки словники є неупорядкованими структурами. Якщо потрібно вивести елементи словника упорядкованими за значенням ключа, то слід скористатися функцією sorted()

updateQ — додає елементи у словник. Одна з найпростіших структур методу така: update(oioBHHK)

valuesQ — повертає об'єкт dict_values, який містить усі значення словника

рор(ключ[, значення за умовчанням]) —

вилучає зі словника елемент з указаним ключем і повертає його значення. Якщо ключ відсутній, то повертається значення другого параметра, а якщо відсутній ключ і не вказаний другий параметр, то генерується виняток KeyError

Далі на підтримку викладеного розглянемо приклади 8 і 9.

Приклад 8.

Створити словник, у якому ключами є прізвища видатних українських спортсменів і спортсменок: Яна Клочкова, Сергій Буб-ка, Андрій Шевченко, а їх значеннями є рік народження спортсмена і вид спорту відповідно: 1982, плавчиня; 1963, легкоатлет;

1976, футболіст. Визначити рік народження і вид спорту Сергія Бубки та Яни Клочкової, перевірити наявність у словнику прізвищ Андрія Шевченка і Руслана Пономарьова. Вивести дані Андрія Шевченка.

Код реалізації наведено на рис. 10.7.

Приклад 9.

За розкладом у неділю з аеропорте «Бориспіль» вилітають рейси: 1010 до Лондона, 1030 до Мюнхена, 525 до Афін, 1035 до Мюнхена, 673 до Лондона. Однак рейс 673 скасовано, а оголошено додатковий рейс 1075 до Будапешта.

Розробити код, за допомогою якого виводиться змінений розклад рейсів, загальна кількість рейсів, список міст, до яких вилітають авіарейси, і кількість рейсів до Мюнхена.

Код реалізації наведено на рис. 10.8.

Результат виконання програми:

Запитання для перевірки знань

Як оголошуються словники?

Як можна перевірити наявність ключа у словнику?

Як можна видалити елемент зі словника?

Для чого призначений метод get()?

Яку функцію виконує метод keys()?

Для чого призначений метод updateO? Поясніть сутність методу values().

Завдання для самостійного виконання

В інтерактивному режимі створіть словник, елементами якого є: "Костенко": "зріст 173", "Варламов": "зріст 169", "Берзко": "зріст 165", "Петренко": "зріст 170". Визначте дані про Петренка і кількість елементів у словнику.

Микола зібрав 3,4 кг грибів, Настя — 4 кг, Тетяна — 3,3 кг, Петро — 5,2 кг. Розробіть код створення словника, елементами якого є наведені дані. Визначте, чи збирав гриби Іван; кількість грибів, зібраних Настею; усі імена учнів і учениць, які збирали гриби.

Розробіть код створення словника, ключами і значеннями якого є назви комунальних послуг та їх ціни: споживання газу — 51 грн, опалення — 1350 грн, електроенергія — 152 грн, користування телефоном — 112 грн. До створеного словника додайте послугу: холодна вода — 63 грн. Визначте ціну за електроенергію і телефон. Обчисліть загальну суму послуг.

Розробіть код створення словника, елементами якого є імена та прізвища видатних українських лікарів і лікарок і роки їхнього життя: Микола Амосов (1913-2002), Софія Окуневська-Морачевська (1865-1926), Олександр Богомолець (1881-1946), Володимир Філатов (1875-1956). Додайте у список: Микола Скліфосовський (1836-1904). Перевірте наявність у словнику Володимира Філатова, визначте роки життя Олександра Богомольця.

У шкільній бібліотеці зберігаються підручники з різних шкільних предметів. їх кількість така: з фізики — 95, біології — 40, історії України — 60, математики — 70. Розробіть код створення словника з цих даних. Видаліть зі словника дані про підручник із біології, додайте підручник з інформатики — 60. Визначте наявність підручників з історії України та хімії.

 

Це матеріал з підручника Інформатика 8 клас Руденко (2021)

 




Попередня сторінка:  10.2. Арифметичні операції і вирази. Ста...
Наступна сторінка:   10.4. Використання текстових файлів для ...



^