Урок 13. Списки

В Python виділяють наступні типи колекцій:

  • Список – це колекція, яка є впорядкованою та змінною. Дозволяє дублювати елементи.
  • Кортеж – це впорядкована та незмінна колекція. Дозволяє дублювати елементи.
  • Набір – це невпорядкована, незмінна та неіндексована колекція. Не дозволяє дублювати елементи.
  • Словник – збірка, яка є впорядкованою та змінною. Не дозволяє дублювати елементи.

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

Приклад з відео:

#Списки використовуються для зберігання кількох елементів в одній змінній
#Елементи списку впорядковані, змінні та допускають дублювання значень
#Елементи списку проіндексовано, перший елемент має індекс [0]
carList1 = ["Dodge", "Ford", "Toyota"]
print(carList1)
print(carList1[0])
print(carList1[1])
print(carList1[2])

Дублікати та довжина списку

В Python списки можуть містити дублікати значень, тобто однакові елементи можуть з’являтися кілька разів.

У Python для отримання довжини списку використовують вбудовану функцію len(). Ця функція повертає кількість елементів у списку.

Приклад з відео:

#Списки можуть містити елементи з однаковим значенням
#Функцію len можна використовувати для визначення довжини списку
varCarList1 = ["Dodge", "Ford", "Toyota", "Dodge", "Ford"]
print(varCarList1)
varCarList1Length = len(varCarList1)
print("Length of varCarList1 equals ", varCarList1Length)

Типи даних у списках

У Python списки можуть містити елементи будь-якого типу даних, і навіть комбінації різних типів. Це робить списки дуже гнучкими для зберігання та обробки різних видів даних.

#Елементи списку можуть мати будь-який тип даних
#Список може містити різні типи даних
varCarList1 = ["Dodge", "Ford", "Toyota"]
varNumbersList1 = [1,2,3,4,5]
varBoolList1 = [True, False]
varBusketList1 = [1, "Text", True, 27]
print(varCarList1)
print(varNumbersList1)
print(varBoolList1)
print(varBusketList1)

type та list

У Python для перевірки типу змінної, включаючи списки, використовують функцію type(). Якщо вам потрібно перевірити, чи є змінна списком, ви можете порівняти результат type() з типом list.

У Python конструктор list використовується для створення нових списків.

Приклад з відео:

#списки визначаються як об'єкти з типом даних "list"
varCarList1 = ["Dodge", "Ford", "Toyota"]
print(varCarList1)
print(type(varCarList1))
#Використання конструктора list() для створення списку
varCarList2 = list(("Dodge","Ford","Toyota", "BMW"))
print(varCarList2)

Доступ до елементів списку

В Python індексація є основним способом доступу до елементів списку. Індексація дозволяє отримувати окремі елементи списку за допомогою індекса, який вказує на позицію елемента в списку.

Приклад з відео:

#ви можете отримати доступ до елементів списку, 
#посилаючись на номер індексу
#перший елемент має індекс 0
varCarList1 = ["Dodge", "Ford", "Toyota", "BMW", "Nissan"]
print(varCarList1[0])
print(varCarList1[1])
print(varCarList1[2])
#негативна індексація
#-1 відноситься до останнього елемента, 
#-2 відноситься до передостаннього елемента
print(varCarList1[-1])
print(varCarList1[-2])
print(varCarList1[-3])
#діапазон індексів [1:4] [:3] [-3:-1]
print(varCarList1[1:4])
print(varCarList1[:3])
print(varCarList1[-3:-1])
print(varCarList1[2:])

Пошук і зміна елементів

У Python перевірити наявність елемента у списку можна за допомогою ключового слова in.

Приклад з відео:

# Щоб визначити, чи присутній певний елемент у списку
#використовуйте ключове слово 'in'
varCarList1 = ["Dodge", "Ford", "Toyota"]
checkForItem1 = "Dodge" in varCarList1
checkForAbsenceItem1 = "Dodge" not in varCarList1
print(varCarList1)
print(checkForItem1)
print(checkForAbsenceItem1)
#Щоб змінити значення певного елемента,
#посилайтеся на індекс
varCarList1[2] = "Honda"
print(varCarList1) #['Dodge', 'Ford', 'Honda']
varCarList1[0:2]=["Chrysler", "Lincoln"]
print(varCarList1) #['Chrysler', 'Lincoln', 'Honda']
varCarList1[0:2] = ["Dodge", "Ford", "Nissan"]
print(varCarList1) #['Dodge', 'Ford', 'Nissan', 'Honda']
varCarList1[0:2] = ["Chrysler"] #['Chrysler', 'Nissan', 'Honda']
print(varCarList1)

Метод insert

Метод insert у Python використовується для вставки елемента в конкретну позицію в списку. Цей метод дозволяє вказати індекс, на якому потрібно вставити новий елемент, а також сам елемент.

Приклад з відео:

#insert() метод вставляє елемент за вказаним індексом
varCarList1 = ["Dodge", "Ford", "Toyota"]
print(varCarList1)
varCarList1.insert(2, "Lincoln")
print(varCarList1)

Метод append

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

Приклад з відео:

#Використання методу append() для додавання елемента
varCarList1 = ["Dodge", "Ford", "Toyota"]
print(varCarList1)
varCarList1.append("Chrysler")
print(varCarList1)

Метод extend

Метод extend у Python використовується для додавання всіх елементів з ітерабельного об’єкта (наприклад, списку, множини, рядка) в кінець існуючого списку. Це відрізняється від методу append, який додає ітерабельний об’єкт як один елемент.

Приклад з відео:

#Для додавання елементів з іншого ітерабельного об’єкта
#до поточного списку,
#використовуйте метод extend().
varCarList1 = ["Dodge", "Ford", "Toyota"]
varCarList2 = ["Chrysler", "Lincoln"]
print(varCarList1)
varCarList1.extend(varCarList2)
print(varCarList1)
print(varCarList2)

Метод remove

Метод remove у Python використовується для видалення першого входження вказаного елемента зі списку. Якщо елемент не існує у списку, метод викличе помилку ValueError. Метод remove працює тільки для видалення значень, а не за індексом.

Приклад з відео:

#Метод remove() видаляє перший вказаний елемент
varCarList1 = ["Dodge", "Ford", "Toyota", "Ford"]
print(varCarList1)
varCarList1.remove("Ford")
print(varCarList1)

Метод pop

Метод pop у Python використовується для видалення і повернення елемента зі списку за вказаним індексом. Якщо індекс не вказаний, метод pop видалить і поверне останній елемент списку. Метод pop змінює список на місці, і він може бути корисним, коли потрібно отримати видалений елемент, а не просто видалити його.

Приклад з відео:

#pop() метод видаляє вказаний індекс
varCarList1 = ["Dodge", "Ford", "Toyota"]
print(varCarList1)
varCarList1.pop(1)
print(varCarList1)
#Якщо не вказати індекс,
#Метод pop() видаляє останній елемент
varCarList1.pop()
print(varCarList1)
#Ключове слово del також видаляє вказаний індекс
varCarList2 = ["Chrysler", "Honda", "Lincoln"]
print(varCarList2)
del varCarList2[0]
print(varCarList2)
del varCarList2
#print(varCarList2)
# varCarList2 = ["Chrysler", "Honda", "Lincoln"]
# print(varCarList2)

Метод clear

Метод clear у Python використовується для видалення всіх елементів зі списку, очищаючи його. Це простий і ефективний спосіб скинути список до порожнього стану.

Приклад з відео:

#Метод clear() очищає список
#Список все ще залишається, але в ньому немає змісту
varCarList1 = ["Car1", "Car2", "Car3"]
print(varCarList1)
varCarList1.clear()
print(varCarList1)

Цикл for та списки

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

Приклад з відео:

#Ви можете пройтися черз елементи списку 
#за допомогою циклу for
varCarList1 = ["Dodge", "Ford", "Toyota"]

for car in varCarList1:
    print(car)

Також можливо комбінувати використання циклу for з функціями range() та len(), що по суті надає можливість звертатися до елементів списку за індексом.

Приклад з відео:

#Ви також можете переглядати елементи списку, посилаючись
#до відповідного номера індексу за допомогою функцій range() і len().
varCarList1 = ["Dodge", "Ford", "Toyota"]
for i in range(len(varCarList1)):
    print(varCarList1[i])

Цикл while та списки

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

Приклад з відео:

#Ви можете пройти через елементи списку за допомогою циклу while
#Використовуйте функцію len(), щоб визначити довжину списку,
#тоді почніть з 0 і пройдіть по елементам списку,
#посилаючись на їхні індекси
varCarList1 = ["Dodge", "Ford", "Toyota"]
counter = 0
while counter<len(varCarList1):
    print(varCarList1[counter])
    counter = counter+1

Спрощений синтаксис

Існує спрощений синтаксис, який можна використовувати при створенні спсиків. Приклад з відео:

#newlist = [вираз для елемента в iterable if condition == True]
#Поверненим значенням є новий список, який залишає старий список без змін.
varCarList1 = ["Dodge", "Ford", "Toyota"]
varCarList2 = []
for car in varCarList1:
    varCarList2.append(car)    
print("varCarList 1 {}".format(varCarList1))
print("varCarList 2 {}".format(varCarList2))
varCarList3 = [car for car in varCarList1]
print("varCarList 3 {}".format(varCarList3))
#print elements of the list with comprehension syntax
[print(car) for car in varCarList3]

Метод sort

Метод sort у Python використовується для сортування елементів списку в порядку зростання або спадання. Метод sort змінює порядок елементів у списку на місці, тобто він не повертає нового списку, а змінює оригінальний.

Приклади з відео:

#Об’єкти List мають метод sort(), який сортує
#список у алфавітно-цифровому порядку, за замовчуванням
varCarList1 = ["Dodge", "Ford", "Toyota", "BMW", "Honda"]
varCarList1.sort()
print(varCarList1)
numList1 = [5,7,3,9,1]
numList1.sort()
print(numList1)
#Щоб відсортувати за спаданням, 
#використовуйте аргумент ключового слова reverse = True
varCarList1 = ["Dodge","Ford","Toyota","BMW","Honda"]
varCarList1.sort(reverse=True)
print(varCarList1)
numList1 = [1,3,5,7,9]
numList1.sort(reverse=True)
print(numList1)
#За замовчуванням метод sort() чутливий до регістру, що призводить до
#того, що усі великі літери сортуються перед малими
itemsList1= ["notebook", "Pencil", "flash drive", "Scissors"]
itemsList1.sort()
print(itemsList1)

itemsList1.sort(key=str.lower)
print(itemsList1)
#Метод reverse() змінює поточний порядок сортування
#елементів
itemsList1.reverse()
print(itemsList1)

Метод copy

Метод copy у Python використовується для створення поверхневої копії списку. Це означає, що метод copy створює новий список, який має ті ж елементи, що й оригінальний, але сам список і його елементи в пам’яті є окремими. Це корисно, коли потрібно створити копію списку, щоб уникнути змін в оригінальному списку під час маніпуляцій з його копією.

Приклад з відео:

#Ви не можете скопіювати список, просто ввівши list2 = list1,
#бо: list2 буде лише посиланням на list1, і
#зміни, зроблені в списку1, автоматично також будуть внесені в список2.
#використовуйте вбудований метод copy()
varCarList1=["Dodge", "Ford", "Toyota"]
varCarList2=varCarList1.copy()
print(varCarList1)
print(varCarList2)
varCarList1.append("Honda")
varCarList2.append("BMW")
print(varCarList1)
print(varCarList2)

varCarList3=list(varCarList1)
print(varCarList3)
varCarList3.append("Alfa Romeo")
print(varCarList3)

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

Існує кілька варіантів об’єднання списків, зокрем можна використати оператор + чи метод extend або комбінацію циклу for та методу append.

Приклад з відео:

#використовуйте оператор + для об'єнання списків
varCarList1=["Dodge", "Ford", "Toyota"]
varCarList2=["Honda","BMW"]
varCarList3=["Alfa Romeo", "Chevrolet"]
varCarList4 = varCarList1+varCarList2
print(varCarList4)
#метод extend
varCarList1.extend(varCarList3)
print(varCarList1)
#цикл for для додавання елементів
for car in varCarList3:
    varCarList2.append(car)
    
print(varCarList2)
Урок 13. Списки у Python

В цьому відео поговоримо про:
00:00:19 Python Collections – Колекції
00:03:01 Python Lists – Списки
00:04:52 Duplicates and List Length – Дуплікати і розмір (довжина) списку
00:07:07 List Data Types – Типи даних у списках
00:09:06 функція type and конструктор list
00:11:21 Indexing (access list items) – Індекси елементів списку
00:19:56 Check for and change – Перевірка і зміна
00:29:02 Insert items – Введення елементів
00:30:44 Append items – Додавання елементів
00:32:21 Extend list – Розширення списку
00:34:56 Remove item – Видалення елементу
00:36:51 Remove specified index – Видалення елементу по індексу
00:44:17 Clear method – Метод очистити
00:45:46 For Loop and List – Цикл For і список
00:48:14 For Loop with index numbers – Цикл For з номерами індексів
00:51:59 While Loop and List – Цикл while і список
00:54:35 List Comprehension – Спрощення списку
00:58:59 Sort ascending – Сортування за зростанням
01:00:38 Sort descending – Сортування за зменшенням
01:02:21 Case Insensitive Sort – Сортування нечутливе до регістру
01:06:24 Copy List – Копіювання списку
01:10:50 Join Lists – Об’єднання списку

Leave a Reply

Your email address will not be published. Required fields are marked *