
Це фрагмент книги Python з нуля, яка допоможе вам навчитися програмуванню з нуля. Ви можете знайти його на Allegro, Empik та в інтернет-книгарнях.

Список можна уявити собі як нескінченно довгу полицю, де місця для значень пронумеровані послідовними номерами, починаючи з нуля.
my_list = [] print(my_list) # []
list— це не дуже вдала назва для змінної, оскільки це ім’я класу, який представляє список.
fruits = ["Яблуко", "Банан", "Слива"] print(fruits) # ["Яблуко", "Банан", "Слива"]

Візуалізація списку з трьох предметів: яблуко, банан і слива. Вони займають послідовні позиції від 0 до 2.
my_list = [1, "A", True, [], {a: "A"}] print(my_list) # [1, "A", True, [], {a: "A"}]
append. Як і в нашій метафорі полиці, коли ми ставимо новий предмет, за замовчуванням він займає перше вільне місце за іншими предметами.fruits = ["Яблуко"] print(fruits) # ["Яблуко"] fruits.append("Банан") print(fruits) # ["Яблуко", "Банан"] fruits.append("Слива") print(fruits) # ["Яблуко", "Банан", "Слива"]

Метод
append додає елемент на останню позицію списку.pop, який забирає останній елемент зі списку. Це дуже схоже на те, як ми знімаємо останню річ із полиці. Коли цей метод викликається, він повертає усунений елемент і в той же час змінює список так, що елемент у ньому зникає.fruits = ["Яблуко", "Банан", "Слива"] ret = fruits.pop() print(ret) # Слива print(fruits) # ["Яблуко", "Банан"]

метод
pop вилучає останній елемент зі списку.values = [True, __, "AAA"] print(values.pop()) # ____ print(values.pop()) # 42 values.append(88) print(values) # _______ pets = ["dog", "cat"] pets.pop() pets.append("pig") print(pets) # _______ pet = pets.pop() print(pets) # _______ print(pet) # _______
Іноді вживається термін положення елементів, але це поняття недостатньо чітке. Дехто про елемент із індексом0каже, що він розташований на першому місці. Щоб уникнути будь-яких розбіжностей серед програмістів у розумінні цього терміна, ми будемо говорити про те, за яким індексом розташований даний елемент.
fruits = ["Яблуко", "Банан", "Слива"] print(fruits) # ["Яблуко", "Банан", "Слива"] print(fruits[1]) # Банан print(fruits[0]) # Яблуко print(fruits) # ["Яблуко", "Банан", "Слива"] fruit = fruits[2] print(fruit) # Слива
0. До другого — 1. Але що робити, якщо ми хочемо звернутися до останнього елемента? Якби ми знали розмір списку, ми відняли би від нього 1 і отримали індекс останнього елемента. Однак така операція була би досить складною, тому Python спростив нам завдання. Якщо ми хочемо звернутися до останнього елемента, ми використовуємо значення -1. До передостаннього — -2 і т.д.fruits = ["Яблуко", "Банан", "Слива"] print(fruits) # ["Яблуко", "Банан", "Слива"] print(fruits[-1]) # Слива print(fruits[-2]) # Банан print(fruits) # ["Яблуко", "Банан", "Слива"] fruit = fruits[-3] print(fruit) # Яблуко
names = ["Ада", "Бартек", "Чарек", "Дарія", "Ева"] print(names[0]) print(names[3]) print(names[-1]) print(names[-2]) print(names[1]) print(names[-4])
1: -1.letters = ["A", "B", "C", "D"] print(letters[1:-1]) # ['B', 'C'] print(letters[0:-2]) # ['A', 'B'] print(letters[0:-1]) # ['A', 'B', 'C']
letters = ["A", "B", "C", "D"] print(letters[2:]) # ['C', 'D'] print(letters[1:]) # ['B', 'C', 'D'] print(letters[:2]) # ['A', 'B'] print(letters[:]) # ['A', 'B', 'C', 'D']
Індекси та діапазони також можна використовувати для усування фрагментів рядків, де індекси відповідають кожній літері. Таким чином"ABC"[1]поверне"B", а"ABCDEF" [1:-1]-"BCDE".
names = ["Ада", "Бартек", "Чарек", "Дарія", "Ева"] print(names[0:2]) print(names[2:4]) print(names[:3]) print(names[3:-1]) print(names[1:]) print(names[1:3]) print(names[-3:]) print(names[1:-2]) print(names[:])
names = ["Ада", "Бартек", "Чарек"] names[1] = "Марек" print(names) # ['Ада', 'Марек', 'Чарек'] names[-1] = "Ніна" print(names) # ['Ада', 'Марек', 'Ніна']
names = ["Ада", "Бартек", "Чарек", "Дарія"] names[1:3] = ["Оля"] # В діапазоні 1:3 були "Бартек" і "Чарек", # тепер — "Оля" print(names) # ['Ада', 'Оля', 'Дарія'] names[1:2] = ["Пауліна", "Роберт"] # В діапазоні 1:2 була "Оля" # тепер — "Пауліна" і "Роберт" print(names) # ['Ада', 'Пауліна', 'Роберт', 'Дарія'] names[2:] = [] # Усуваємо елементи, починаючи з другого індексу print(names) # ['Ада', 'Пауліна'] names[:1] = [] # Усуваємо перший елемент print(names) # ['Пауліна'] names[:] = [] # Так можна очистити весь список print(names) # []
names = ["Ада", "Бартек", "Чарек"] names[2] = "Інжир" print(names) names[-2] = "Геральт" print(names) names = ["Ада", "Бартек", "Чарек"] names[:1] = [] print(names) names[2:] = ["Ева", "Галина"] print(names) names[1:2] = ["Іза", "Ян"] print(names) names[:-1] = ["Кася"] print(names)
len, яка повертає це число.empty = [] print(len(empty)) # 0 names = ["Яблуко", "Банан"] print(len(names)) # 2 values = [True, "Слива", None, [], 42] print(len(values)) # 5 print(len(values[3])) # 0
"A" до "F". Який розмір матиме цей список? Який індекс літери Е? Потім створи список із послідовними числами від 5 до 12. Який розмір матиме цей список? Який елемент міститься за індексом 3?letters = ______________________ print(len(letters)) # ____ print(letters[____]) # E numbers = ______________________ print(len(numbers)) # ___ print(numbers[3]) # ___
in між шуканим елементом і списком.sizes = ["M", "L", "XL", "XXL"] print("L" in sizes) # True print("S" in sizes) # False print("XXL" in sizes) # True numbers = [3.14, 2.71, 42] print(1 in numbers) # False print(2.71 in numbers) # True print(45 in numbers) # False
letters = ["A", "C", "E"] print("A" in letters) print("B" in letters) print("C" in letters) letters[1] = "F" print("F" in letters) print("C" in letters)
list1 = [1, True] list2 = ["A", []] list3 = list1 + list2 print(list1) # [1, True] print(list2) # ['A', []] print(list3) # [1, True, 'A', []] list1[1] = False print(list1) # [1, False] print(list3) # [1, True, 'A', []]
list1 не впливає на list3, оскільки list3 є копією об’єднаних списків. Варто на це зважати, адже якщо у нас є дві змінні, які вказують на один список, то зміна списку вплине на елементи, які відображаються для обох змінних. Щоб протидіяти цьому, створюється копія списку (наприклад, за допомогою діапазону, який включає всі елементи).list1 = ["A", "B"] list1Ref = list1 list1Copy = list1[:] list1.append("C") print(list1) # ['A', 'B', 'C'] print(list1Ref) # ['A', 'B', 'C'] print(list1Copy) # ['A', 'B']
l1 = ["A", "B"] l2 = ["D", "E"] letters = l1 + l2 l1Copy = l1[:] print(letters) l1.append("C") print(l1) print(letters) print(l1Copy)
Термін "tuple" перекладається як "кортеж". Однак цей переклад рідко використовується поза книгами та курсами. У цьому випадку я мав подібну дилему і вирішив використати (можливо, не найточнішу) транскрипцію. Термін "тапл" зрозуміліший, а його використання допомагає простіше перейти на англійську мову, яка є основою в роботі програмістів.
append або pop. Крім того, заборонена заміна за допомогою знаку рівності після елемента або діапазону. Ми створюємо тапл, використовуючи круглі, а не фігурні дужки.sizes = ("S", "M", "L", "XL") print(len(sizes)) # 4 print(sizes[0]) # S print(sizes[1:3]) # ('M', 'L') print("XXL" in sizes) # False print("S" in sizes) # True
tuple без жодних аргументів.empty = () # або empty = tuple() print(empty) # ()
s = ("XXL") print(type(s)) # <class 'str'> new_size = ("XXL",) print(type(new_size)) # <class 'tuple'>
sizes і new_size, після чого присвоїмо це значення змінній sizes. Отже сам вміст не змінився, але те, на що вказує змінна, змінилося.sizes = sizes + new_size print(sizes) # ('S', 'M', 'L', 'XL', 'XXL')
values = (True, __, "AAA") print(values[1]) # 42 print(values[2]) # _____ print(values[:1]) # _____ empty = _______ print(len(empty)) # 0 single = _______ print(single) # ('AAA',) print(len(single)) # ___
[^202_2]: За замовчуванням після змінної, яка вказує на список.
