Списки та кортежі

Списки та кортежі
1. Списки та кортежі – це набори об'єктів. Кожен елемент набору містить лише посилання на об'єкт. З цієї причини списки і кортежі можуть містити об'єкти довільного типу даних і мати необмежену ступінь вкладеності. Позиція елемента в наборі задається індексом. Зверніть увагу на те, що нумерація елементів починається з 0, а не з 1.

Список вкладають у квадратні дужки [ ], а його елементи відокремлюють комами. Кортежі вкладають в круглі дужки.

Список(list) - це упорядкований набір об'єктів довільних типів(чисел, рядків, списків тощо)

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

Списки та кортежі є впорядкованими послідовностями елементів. Як і всі послідовності, вони підтримують
- звернення до елементу за індексом,
- отримання зрізу,
- конкатенацію (оператор +),
- повторення (оператор *),
- перевірку на входження (оператор in).

Списки відносяться до змінюваних типів даних. Це означає, що ми можемо не тільки отримати елемент за індексом, а й змінити його. Кортежі відносяться до незмінних типів даних. Іншими словами, можна отримати елемент за індексом, але змінити його не можна.

1.1. Створення списку
Створити список можна наступними способами:






за допомогою функції list([<Послідовність>]). Функція дозволяє перетворити будь-яку послідовність в список. Якщо параметр не вказано, то створюється порожній список.
Приклад:






вказавши всі елементи списку всередині квадратних дужок:







заповнивши список поелементно за допомогою методу append():
Наведемо фрагменти коду з прикладами введення значень елементів списку з клавіатури.
Фрагмент програми, при виконанні якого буде введено значення 4-х елементів створеного списку.









Фрагмент програми, при виконанні якого буде введено значення n (також визначається користувачем) елементів створеного списку A.












Фрагмент програми, при виконанні якого буде введено значення n (визначається користувачем) елементів створеного списку A. Значеннями елементів списку будуть цілі числа.













-------------------------------------------------------------------------------------------------------------------
1.2. Методи split(розділити) і join(приєднати)

Елементи списку можуть вводитися по одному в рядку, в цьому випадку рядок можна вважати функцією input (). Після цього можна використовувати метод рядки split, який повертає список рядків, розрізавши вихідну рядок на частини по прогалин. приклад:

A = input ().split ()
Якщо при запуску цієї програми ввести рядок 1 2 3, то список A буде дорівнює [ '1', '2', '3']. Зверніть увагу, що список буде складатися з рядків, а не з чисел. Якщо хочеться отримати список саме з чисел, то можна потім елементи списку по одному перетворити в числа:

for i in range (len (A)):
    A [i] = int (A [i])
Використовуючи функції мови map і list те ж саме можна зробити в один рядок:


A = list (map (int, input ().split ()))
Пояснень, як працює цей код, поки не буде. Якщо потрібно вважати список дійсних чисел, то потрібно замінити тип int на тип float.

У методу split є необов'язковий параметр, який визначає, який рядок буде використовуватися як роздільник між елементами списку. Наприклад, метод split ( '.') Поверне список, отриманий розрізанням вихідного рядка по символам '.'.

Використовуючи "зворотні" методи можна вивести список за допомогою однорядковою команди. Для цього використовується метод рядки join. У цього методу один параметр: список рядків. В результаті виходить рядок, отримана з'єднанням елементів списку (які передані в якості параметра) в один рядок, при цьому між елементами списку вставляється роздільник, рівний тому рядку, до якої застосовується метод. наприклад програма

A = [ 'red', 'green', 'blue']
print ( '' .join (A))
print ( ''. join (A))
print ( '***'. join (A))
виведе рядки 'red green blue', redgreenblue і red *** green *** blue.

Якщо ж список складається з чисел, то доведеться використовувати ще і функцію map. Тобто вивести елементи списку чисел, розділяючи їх пробілами, можна так:

print ( '' .join (map (str, A)))
-------------------------------------------------------------------------------------------------------------------
1.2. Генератори списків

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

A = [0] * n
Для створення списків, заповнених за складнішими формулами можна використовувати генератори: вирази, що дозволяють заповнити список деякою формулою. Загальний вигляд генератора наступний:

[Вираз for змінна in список]
де змінна - ідентифікатор деякої змінної, список - список значень, який приймає дана змінна (як правило, отриманий за допомогою функції range), вираз - деякий вираз, яким будуть заповнені елементи списку, як правило, залежить від використаної в генераторі змінної.

Ось кілька прикладів використання генераторів.

Створити список, що складається з n нулів можна і за допомогою генератора:

A = [0 for i in range (n)]
Створити список, заповнений квадратами цілих чисел можна так:

A = [i ** 2 for i in range (n)]
Якщо потрібно заповнити список квадратами чисел від 1 до n, то можна змінити параметри функції range на range (1, n + 1):

A = [i ** 2 for i in range (1, n + 1)]
Ось так можна отримати список, заповнений випадковими числами від 1 до 9 (використовуючи функцію randint з модуля random):

A = [randint (1, 9) for i in range (n)]

А в цьому прикладі список буде складатися з рядків, лічених зі стандартного вводу: спочатку потрібно ввести число елементів списку (це значення буде використано як аргумент функції range), потім - задану кількість рядків:

A = [input () for i in range (int (input ()))]
-------------------------------------------------------------------------------------------------------------------
Запитання
1. Що спільне та чим відрізняються кортежі та списки у мові Python?
2. Перерахуйте способи створення списків у Python?
3. Яким чином здійснюється звернення до елементів списку в мові програмування Python?
4. З якого числа починається нумерація елементів списку в мові Python?
5. Яка функція в мові Python дозволяє отримати кількість елементів списку?
6. Як можна змінити значення елемента списку?

Завдання
1. Заповніть список а 10 цілими випадковими числами(-10<=а(i)<=10). Перевірте чи є у списку число 0. Створіть список b з елементів списку а, що мають парні індекси.

2. На складі зберігається 20 видів товарів. До списку а занесено кількості одиниць кожного товару, до списку b - ціни цих товарів. Обчисліть загальну вартість товарів на складі.






Комментариев нет:

Отправить комментарий