1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>5 дек 2025</li>
2
<ul><li>5 дек 2025</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Рассказали всё самое важное о списках для тех, кто только становится "змееустом".</p>
4
</ul><p>Рассказали всё самое важное о списках для тех, кто только становится "змееустом".</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
6
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7
<p>Сегодня мы подробно поговорим о, пожалуй, самых важных объектах в Python - списках. Разберём, зачем они нужны, как их использовать и какие удобные функции есть для работы с ними.</p>
7
<p>Сегодня мы подробно поговорим о, пожалуй, самых важных объектах в Python - списках. Разберём, зачем они нужны, как их использовать и какие удобные функции есть для работы с ними.</p>
8
<p>В статье есть всё, что начинающим разработчикам нужно знать о списках в Python.</p>
8
<p>В статье есть всё, что начинающим разработчикам нужно знать о списках в Python.</p>
9
<ul><li><a>Что это такое</a></li>
9
<ul><li><a>Что это такое</a></li>
10
<li><a>Как создавать списки в Python</a></li>
10
<li><a>Как создавать списки в Python</a></li>
11
<li><a>Какие с ними можно выполнять операции</a></li>
11
<li><a>Какие с ними можно выполнять операции</a></li>
12
<li><a>Как работать со</a><a>встроенными функциями</a></li>
12
<li><a>Как работать со</a><a>встроенными функциями</a></li>
13
<li><a>Какие в</a><a>Python есть методы управления элементами</a></li>
13
<li><a>Какие в</a><a>Python есть методы управления элементами</a></li>
14
</ul><p>Список (list) - это упорядоченный набор элементов, каждый из которых имеет свой номер, или<strong>индекс</strong>, позволяющий быстро получить к нему доступ. Нумерация элементов в списке начинается с 0: почему-то так сложилось в C, а C - это база. Теорий на этот счёт много - на "Хабре" даже вышло<a>большое расследование</a>:)</p>
14
</ul><p>Список (list) - это упорядоченный набор элементов, каждый из которых имеет свой номер, или<strong>индекс</strong>, позволяющий быстро получить к нему доступ. Нумерация элементов в списке начинается с 0: почему-то так сложилось в C, а C - это база. Теорий на этот счёт много - на "Хабре" даже вышло<a>большое расследование</a>:)</p>
15
Так списки можно представить визуально<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>В одном списке одновременно могут лежать данные разных типов - например, и строки, и числа. А ещё в один список можно положить другой и ничего не сломается.</p>
15
Так списки можно представить визуально<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>В одном списке одновременно могут лежать данные разных типов - например, и строки, и числа. А ещё в один список можно положить другой и ничего не сломается.</p>
16
Мы положили в список число, строку и кота. Всё работает<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Все элементы в списке пронумерованы. Мы можем без проблем узнать индекс элемента и обратиться по нему.</p>
16
Мы положили в список число, строку и кота. Всё работает<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Все элементы в списке пронумерованы. Мы можем без проблем узнать индекс элемента и обратиться по нему.</p>
17
<p>Списки называют динамическими структурами данных, потому что их можно менять на ходу: удалить один или несколько элементов, заменить или добавить новые.</p>
17
<p>Списки называют динамическими структурами данных, потому что их можно менять на ходу: удалить один или несколько элементов, заменить или добавить новые.</p>
18
Добавили новый элемент - мышь - и изменили первый элемент на 8<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Когда мы создаём объект list, в памяти компьютера под него резервируется место. Нам не нужно переживать о том, сколько выделяется места и когда оно освобождается, - Python всё сделает сам. Например, когда мы добавляем новые элементы, он выделяет память, а когда удаляем старые - освобождает.</p>
18
Добавили новый элемент - мышь - и изменили первый элемент на 8<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Когда мы создаём объект list, в памяти компьютера под него резервируется место. Нам не нужно переживать о том, сколько выделяется места и когда оно освобождается, - Python всё сделает сам. Например, когда мы добавляем новые элементы, он выделяет память, а когда удаляем старые - освобождает.</p>
19
<p>Под капотом списков в Python лежит структура данных под названием "массив". У массива есть два важных свойства: под каждый элемент он резервирует одинаковое количество памяти, а все элементы следуют друг за другом, без "пробелов".</p>
19
<p>Под капотом списков в Python лежит структура данных под названием "массив". У массива есть два важных свойства: под каждый элемент он резервирует одинаковое количество памяти, а все элементы следуют друг за другом, без "пробелов".</p>
20
<p>Однако в списках Python можно хранить объекты разного размера и типа. Более того, размер массива ограничен, а размер списка в Python - нет. Но всё равно мы знаем, сколько у нас элементов, а значит, можем обратиться к любому из них с помощью индексов.</p>
20
<p>Однако в списках Python можно хранить объекты разного размера и типа. Более того, размер массива ограничен, а размер списка в Python - нет. Но всё равно мы знаем, сколько у нас элементов, а значит, можем обратиться к любому из них с помощью индексов.</p>
21
<p>И тут есть небольшой трюк: списки в Python представляют собой<em>массив ссылок</em>. Да-да, решение очень элегантное - каждый элемент такого массива хранит не сами данные, а ссылку на их расположение в памяти компьютера!</p>
21
<p>И тут есть небольшой трюк: списки в Python представляют собой<em>массив ссылок</em>. Да-да, решение очень элегантное - каждый элемент такого массива хранит не сами данные, а ссылку на их расположение в памяти компьютера!</p>
22
<p>Чтобы создать объект list, в Python используют квадратные скобки - []. Внутри них перечисляют элементы через запятую:</p>
22
<p>Чтобы создать объект list, в Python используют квадратные скобки - []. Внутри них перечисляют элементы через запятую:</p>
23
a = [1, 2, 3]<p>Мы создали список a и поместили в него три числа, которые разделили запятыми. Давайте выведем его с помощью функции print():</p>
23
a = [1, 2, 3]<p>Мы создали список a и поместили в него три числа, которые разделили запятыми. Давайте выведем его с помощью функции print():</p>
24
print(a) # [1, 2, 3]<p>Python выводит элементы в квадратных скобках, чтобы показать, что это list, а также ставит запятые между элементами.</p>
24
print(a) # [1, 2, 3]<p>Python выводит элементы в квадратных скобках, чтобы показать, что это list, а также ставит запятые между элементами.</p>
25
<p>Мы уже говорили, что списки могут хранить данные любого типа. В примере ниже объект b хранит: строку - cat, число - 123 и булево значение - True:</p>
25
<p>Мы уже говорили, что списки могут хранить данные любого типа. В примере ниже объект b хранит: строку - cat, число - 123 и булево значение - True:</p>
26
b = ['cat', 123, True] print(b) # ['cat', 123, True]<p>Также в Python можно создавать вложенные списки:</p>
26
b = ['cat', 123, True] print(b) # ['cat', 123, True]<p>Также в Python можно создавать вложенные списки:</p>
27
c = [1, 2, [3, 4]] print(c) # [1, 2, [3, 4]]<p>Мы получили объект, состоящий из двух чисел - 1 и 2 - и вложенного list с двумя элементами - [3, 4].</p>
27
c = [1, 2, [3, 4]] print(c) # [1, 2, [3, 4]]<p>Мы получили объект, состоящий из двух чисел - 1 и 2 - и вложенного list с двумя элементами - [3, 4].</p>
28
<p>Если просто хранить данные в списках, то от них будет мало толку. Поэтому давайте рассмотрим, какие операции они позволяют выполнить.</p>
28
<p>Если просто хранить данные в списках, то от них будет мало толку. Поэтому давайте рассмотрим, какие операции они позволяют выполнить.</p>
29
<p>Доступ к элементам списка получают по индексам, через квадратные скобки []:</p>
29
<p>Доступ к элементам списка получают по индексам, через квадратные скобки []:</p>
30
a = [1, 2, 3] print(a[1]) # 2<p>Мы обратились ко второму элементу и вывели его с помощью print().</p>
30
a = [1, 2, 3] print(a[1]) # 2<p>Мы обратились ко второму элементу и вывели его с помощью print().</p>
31
<p>Здесь важно помнить две вещи:</p>
31
<p>Здесь важно помнить две вещи:</p>
32
<ul><li>у каждого элемента есть свой индекс;</li>
32
<ul><li>у каждого элемента есть свой индекс;</li>
33
<li>индексы начинаются с 0.</li>
33
<li>индексы начинаются с 0.</li>
34
</ul><p>Давайте ещё поиграем с индексами:</p>
34
</ul><p>Давайте ещё поиграем с индексами:</p>
35
a = [1, 2, 3, 4] a[0] # Обратится к 1 a[2] # Обратится к 3 a[3] # Обратится к 4 a[4] # Выведет ошибку<p>В последней строке мы обратились к несуществующему индексу, поэтому Python выдал ошибку.</p>
35
a = [1, 2, 3, 4] a[0] # Обратится к 1 a[2] # Обратится к 3 a[3] # Обратится к 4 a[4] # Выведет ошибку<p>В последней строке мы обратились к несуществующему индексу, поэтому Python выдал ошибку.</p>
36
<p>Кроме того, Python поддерживает обращение к нескольким элементам сразу - через интервал. Делается это с помощью двоеточия - :.</p>
36
<p>Кроме того, Python поддерживает обращение к нескольким элементам сразу - через интервал. Делается это с помощью двоеточия - :.</p>
37
a = [1, 2, 3, 4] a[0:2] # Получим [1, 2]<p>Двоеточие позволяет получить срез списка. Полная форма оператора выглядит так: начальный_индекс: конечный_индекс: шаг.</p>
37
a = [1, 2, 3, 4] a[0:2] # Получим [1, 2]<p>Двоеточие позволяет получить срез списка. Полная форма оператора выглядит так: начальный_индекс: конечный_индекс: шаг.</p>
38
<p>Здесь мы указываем, с какого индекса начинается "срез", на каком заканчивается и с каким шагом берутся элементы - по умолчанию 1. Единственный нюанс с конечным индексом: хоть мы и можем подумать, что закончим именно на нём, на самом деле Python остановится на элементе с индексом конечный_индекс - 1. Почему создатели языка решили так сделать? Кто их знает.</p>
38
<p>Здесь мы указываем, с какого индекса начинается "срез", на каком заканчивается и с каким шагом берутся элементы - по умолчанию 1. Единственный нюанс с конечным индексом: хоть мы и можем подумать, что закончим именно на нём, на самом деле Python остановится на элементе с индексом конечный_индекс - 1. Почему создатели языка решили так сделать? Кто их знает.</p>
39
<p>В примере выше мы начали с индекса 0, а закончили на 1, потому что последний индекс не включается. Наш шаг был 1, то есть мы прошлись по каждому элементу.</p>
39
<p>В примере выше мы начали с индекса 0, а закончили на 1, потому что последний индекс не включается. Наш шаг был 1, то есть мы прошлись по каждому элементу.</p>
40
<p>Усложним пример:</p>
40
<p>Усложним пример:</p>
41
a = [1, 2, 3, 4, 5] a[1:6:2] # Получим [2, 4]<p>Здесь мы шли по элементам с шагом 2. Начали с индекса 1 - это первое число внутри скобок, а закончили на индексе 6, не включая его. Двигались с шагом 2, то есть через один элемент, и получили [2, 4].</p>
41
a = [1, 2, 3, 4, 5] a[1:6:2] # Получим [2, 4]<p>Здесь мы шли по элементам с шагом 2. Начали с индекса 1 - это первое число внутри скобок, а закончили на индексе 6, не включая его. Двигались с шагом 2, то есть через один элемент, и получили [2, 4].</p>
42
<p>Протестируйте этот тип индексации сами, чтобы лучше понять, как работают срезы в Python.</p>
42
<p>Протестируйте этот тип индексации сами, чтобы лучше понять, как работают срезы в Python.</p>
43
<p>Списки - это динамическая структура данных. А значит, мы можем менять их уже после создания.</p>
43
<p>Списки - это динамическая структура данных. А значит, мы можем менять их уже после создания.</p>
44
<p>Например, можно заменить один элемент на другой:</p>
44
<p>Например, можно заменить один элемент на другой:</p>
45
a = [1, 2, 3] a[1] = 4 print(a) # [1, 4, 3]<p>Мы обратились к элементу по индексу и заменили его на число 4. Всё прошло успешно, список изменился.</p>
45
a = [1, 2, 3] a[1] = 4 print(a) # [1, 4, 3]<p>Мы обратились к элементу по индексу и заменили его на число 4. Всё прошло успешно, список изменился.</p>
46
<p>Но нужно быть осторожными, потому что может случиться такое:</p>
46
<p>Но нужно быть осторожными, потому что может случиться такое:</p>
47
a = [1, 2] b = a a[0] = 5 print(a) # [5, 2] print(b) # [5, 2]<p>Сначала мы создали список a с двумя элементами - 1 и 2. Затем объявили переменную b и присвоили ей содержимое a. Потом заменили первый элемент в a и… удивились, что он заменился и в b.</p>
47
a = [1, 2] b = a a[0] = 5 print(a) # [5, 2] print(b) # [5, 2]<p>Сначала мы создали список a с двумя элементами - 1 и 2. Затем объявили переменную b и присвоили ей содержимое a. Потом заменили первый элемент в a и… удивились, что он заменился и в b.</p>
48
<p>Проблема в том, что a - это ссылка на область в памяти компьютера, где хранится первый элемент списка, а также на следующий его элемент. Вот как всё это устроено в памяти компьютера.</p>
48
<p>Проблема в том, что a - это ссылка на область в памяти компьютера, где хранится первый элемент списка, а также на следующий его элемент. Вот как всё это устроено в памяти компьютера.</p>
49
Когда мы присваиваем переменной список, на самом деле мы присваиваем ей ссылку на первый элемент списка<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Каждый элемент списка имеет четыре секции: свой адрес, данные, адрес следующего элемента и адрес предыдущего. Если мы получили доступ к какому-то элементу, мы без проблем можем двигаться вперёд-назад по этому списку и менять его данные.</p>
49
Когда мы присваиваем переменной список, на самом деле мы присваиваем ей ссылку на первый элемент списка<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Каждый элемент списка имеет четыре секции: свой адрес, данные, адрес следующего элемента и адрес предыдущего. Если мы получили доступ к какому-то элементу, мы без проблем можем двигаться вперёд-назад по этому списку и менять его данные.</p>
50
<p>Поэтому, когда мы присвоили списку b список a, то на самом деле присвоили ему ссылку на первый элемент - по сути, сделав их одним списком.</p>
50
<p>Поэтому, когда мы присвоили списку b список a, то на самом деле присвоили ему ссылку на первый элемент - по сути, сделав их одним списком.</p>
51
<p>Иногда полезно объединить два списка. Чтобы это сделать, используют оператор +:</p>
51
<p>Иногда полезно объединить два списка. Чтобы это сделать, используют оператор +:</p>
52
a = [1, 2] b = [3, 4] с = a + b print(с) # [1, 2, 3, 4]<p>Мы создали два списка - a и b. Затем переприсвоили a новым списком, который стал объединением старого a и b.</p>
52
a = [1, 2] b = [3, 4] с = a + b print(с) # [1, 2, 3, 4]<p>Мы создали два списка - a и b. Затем переприсвоили a новым списком, который стал объединением старого a и b.</p>
53
<p>Элементы списка можно присвоить отдельным переменным:</p>
53
<p>Элементы списка можно присвоить отдельным переменным:</p>
54
a = [1, 2, 3] d1, d2, d3 = a print(d1) # 1 print(d2) # 2 print(d3) # 3<p>Здесь из списка a поочерёдно достаются элементы, начиная с индекса 0, и присваиваются переменным. И в отличие от присвоения одного списка другому, в этом случае Python создаст три отдельных целых числа, которые никак не будут связаны с элементами списка, и присвоит их трём переменным. Поэтому, если мы изменим, например, переменную d2, со списком a ничего не случится.</p>
54
a = [1, 2, 3] d1, d2, d3 = a print(d1) # 1 print(d2) # 2 print(d3) # 3<p>Здесь из списка a поочерёдно достаются элементы, начиная с индекса 0, и присваиваются переменным. И в отличие от присвоения одного списка другому, в этом случае Python создаст три отдельных целых числа, которые никак не будут связаны с элементами списка, и присвоит их трём переменным. Поэтому, если мы изменим, например, переменную d2, со списком a ничего не случится.</p>
55
<p>Мы можем перебирать элементы списка с помощью циклов for и while.</p>
55
<p>Мы можем перебирать элементы списка с помощью циклов for и while.</p>
56
<p>Так выглядит перебор через for:</p>
56
<p>Так выглядит перебор через for:</p>
57
animals = ['cat', 'dog', 'bat'] for animal in animals: print(animal) # cat dog bat<p>Здесь мы перебираем каждый элемент списка и выводим их с помощью функции print().</p>
57
animals = ['cat', 'dog', 'bat'] for animal in animals: print(animal) # cat dog bat<p>Здесь мы перебираем каждый элемент списка и выводим их с помощью функции print().</p>
58
<p>А вот так выглядит перебор через цикл while:</p>
58
<p>А вот так выглядит перебор через цикл while:</p>
59
animals = ['cat', 'dog', 'bat'] i = 0 while i < len(animals): print(animals[i]) # cat dog bat i += 1<p>Этот перебор чуть сложнее, потому что мы используем дополнительную переменную i, чтобы обращаться к элементам списка. Также мы использовали встроенную функцию len(), чтобы узнать размер нашего списка. А ещё в условии цикла while мы указали знак "меньше" (<), потому что индексация элементов идёт до значения количество элементов списка - 1. Как и в прошлом примере, все элементы по очереди выводятся с помощью функции print().</p>
59
animals = ['cat', 'dog', 'bat'] i = 0 while i < len(animals): print(animals[i]) # cat dog bat i += 1<p>Этот перебор чуть сложнее, потому что мы используем дополнительную переменную i, чтобы обращаться к элементам списка. Также мы использовали встроенную функцию len(), чтобы узнать размер нашего списка. А ещё в условии цикла while мы указали знак "меньше" (<), потому что индексация элементов идёт до значения количество элементов списка - 1. Как и в прошлом примере, все элементы по очереди выводятся с помощью функции print().</p>
60
<p>Если вам нужно получить набор значений по понятному правилу, удобно использовать генераторы списков. Это короткая запись, которая проходит по данным и сразу создаёт новый список из преобразованных или отфильтрованных значений. Генератор делает то же самое, что и обычный цикл, но компактнее, к тому же читается легче - а значит, будет меньше ошибок.</p>
60
<p>Если вам нужно получить набор значений по понятному правилу, удобно использовать генераторы списков. Это короткая запись, которая проходит по данным и сразу создаёт новый список из преобразованных или отфильтрованных значений. Генератор делает то же самое, что и обычный цикл, но компактнее, к тому же читается легче - а значит, будет меньше ошибок.</p>
61
<p>Генератор списка состоит из двух частей: выражения, которое определяет преобразование каждого элемента, и источника данных с циклом for для итерации. Общий синтаксис: [выражение for элемент in источник].</p>
61
<p>Генератор списка состоит из двух частей: выражения, которое определяет преобразование каждого элемента, и источника данных с циклом for для итерации. Общий синтаксис: [выражение for элемент in источник].</p>
62
result = [x * 2 for x in range(1,9)] print(result) # [2, 4, 6, 8, 10, 12, 14, 16]<p>В примере выше мы перебираем числа от 1 до 8 (range(1, 9) не включает 9), умножаем каждое на 2 и помещаем результаты в новый список result.</p>
62
result = [x * 2 for x in range(1,9)] print(result) # [2, 4, 6, 8, 10, 12, 14, 16]<p>В примере выше мы перебираем числа от 1 до 8 (range(1, 9) не включает 9), умножаем каждое на 2 и помещаем результаты в новый список result.</p>
63
<p>Чтобы дополнительно отфильтровать данные, добавьте условие прямо в выражение. Например, сформируем список только из нечётных чисел:</p>
63
<p>Чтобы дополнительно отфильтровать данные, добавьте условие прямо в выражение. Например, сформируем список только из нечётных чисел:</p>
64
result = [x for x in range(1, 10) if x % 2 == 1] print(result) # [1, 3, 5, 7, 9]<p>Python поддерживает сравнение списков. Два списка считаются равными, если они содержат одинаковые элементы. Функция возвращает булево значение - True или False:</p>
64
result = [x for x in range(1, 10) if x % 2 == 1] print(result) # [1, 3, 5, 7, 9]<p>Python поддерживает сравнение списков. Два списка считаются равными, если они содержат одинаковые элементы. Функция возвращает булево значение - True или False:</p>
65
a = [1, 2, 3] b = [1, 2, 3] print(a == b) # True<p>Получили, что списки равны.</p>
65
a = [1, 2, 3] b = [1, 2, 3] print(a == b) # True<p>Получили, что списки равны.</p>
66
-
<p>В некоторых языках равенство ещё проверяется и по тому, ссылаются ли переменные на один и тот же объект. Обычно это делается через оператор ===. В Python это можно сделать через оператор is, который проверяет, имеют ли две переменные один и тот же адрес в памяти:</p>
66
+
<p>В некоторых языках равенство ещё про��еряется и по тому, ссылаются ли переменные на один и тот же объект. Обычно это делается через оператор ===. В Python это можно сделать через оператор is, который проверяет, имеют ли две переменные один и тот же адрес в памяти:</p>
67
a = [1, 2, 3] b = a print(a is b) # True<p>Получили, что две переменные ссылаются на один и тот же адрес в памяти.</p>
67
a = [1, 2, 3] b = a print(a is b) # True<p>Получили, что две переменные ссылаются на один и тот же адрес в памяти.</p>
68
<p>В Python есть четыре функции, которые позволяют узнавать длину списка, сортировать его и возвращать максимальное и минимальное значение.</p>
68
<p>В Python есть четыре функции, которые позволяют узнавать длину списка, сортировать его и возвращать максимальное и минимальное значение.</p>
69
<p>Возвращает длину списка:</p>
69
<p>Возвращает длину списка:</p>
70
a = [5, 3, 1] print(len(a)) # 3<p>Возвращает отсортированный список:</p>
70
a = [5, 3, 1] print(len(a)) # 3<p>Возвращает отсортированный список:</p>
71
a = [8, 1, 3, 2] print (sorted(a)) # [1, 2, 3, 8]<p>Возвращают наименьший и наибольший элемент списка:</p>
71
a = [8, 1, 3, 2] print (sorted(a)) # [1, 2, 3, 8]<p>Возвращают наименьший и наибольший элемент списка:</p>
72
a = [1, 9, -2, 3] print(min(a)) # -2 print(max(a)) # 9<p>Чтобы проще управлять элементами списка, в стандартной библиотеке Python есть набор популярных методов для списков. Разберём основные из них.</p>
72
a = [1, 9, -2, 3] print(min(a)) # -2 print(max(a)) # 9<p>Чтобы проще управлять элементами списка, в стандартной библиотеке Python есть набор популярных методов для списков. Разберём основные из них.</p>
73
<p>Добавляет новый элемент в конец списка:</p>
73
<p>Добавляет новый элемент в конец списка:</p>
74
a = [1, 2, 3] a.append(4) print(a) # [1, 2, 3, 4]<p>Добавляет набор элементов в конец списка:</p>
74
a = [1, 2, 3] a.append(4) print(a) # [1, 2, 3, 4]<p>Добавляет набор элементов в конец списка:</p>
75
a = [1, 2, 3] a.extend([4, 5]) print(a) # [1, 2, 3, 4, 5]<p>Внутрь метода extend() нужно передать итерируемый объект - например, другой list или строку.</p>
75
a = [1, 2, 3] a.extend([4, 5]) print(a) # [1, 2, 3, 4, 5]<p>Внутрь метода extend() нужно передать итерируемый объект - например, другой list или строку.</p>
76
<p>Вот так метод extend() добавит строку:</p>
76
<p>Вот так метод extend() добавит строку:</p>
77
a = ['cat', 'dog', 'bat'] a.extend('mouse') print(a) # ['cat', 'dog', 'bat', 'm', 'o', 'u', 's', 'e']<p>Заметьте, что строка добавилась посимвольно.</p>
77
a = ['cat', 'dog', 'bat'] a.extend('mouse') print(a) # ['cat', 'dog', 'bat', 'm', 'o', 'u', 's', 'e']<p>Заметьте, что строка добавилась посимвольно.</p>
78
<p>Добавляет новый элемент по индексу:</p>
78
<p>Добавляет новый элемент по индексу:</p>
79
a = [1, 2, 3] a.insert(0, 4) print(a) # [4, 1, 2, 3]<p>Сначала мы передаём индекс, по которому хотим вставить новый элемент, а затем сам элемент.</p>
79
a = [1, 2, 3] a.insert(0, 4) print(a) # [4, 1, 2, 3]<p>Сначала мы передаём индекс, по которому хотим вставить новый элемент, а затем сам элемент.</p>
80
<p>Удаляет элемент из списка:</p>
80
<p>Удаляет элемент из списка:</p>
81
a = [1, 2, 3, 1] a.remove(1) print(a) # [2, 3, 1]<p>Метод удаляет только первое вхождение элемента. Остальные остаются нетронутыми.</p>
81
a = [1, 2, 3, 1] a.remove(1) print(a) # [2, 3, 1]<p>Метод удаляет только первое вхождение элемента. Остальные остаются нетронутыми.</p>
82
<p>Если элемента нет в списке, Python вернёт ошибку и программа прервётся:</p>
82
<p>Если элемента нет в списке, Python вернёт ошибку и программа прервётся:</p>
83
a = [1, 2, 3, 1] a.remove(5) # ValueError: list.remove(x): x not in list<p>Ошибка говорит, что элемента нет в списке.</p>
83
a = [1, 2, 3, 1] a.remove(5) # ValueError: list.remove(x): x not in list<p>Ошибка говорит, что элемента нет в списке.</p>
84
<p>Удаляет все элементы из списка и делает его пустым:</p>
84
<p>Удаляет все элементы из списка и делает его пустым:</p>
85
a = [1, 2, 3] a.clear() print(a) # []<p>Возвращает индекс элемента списка в Python:</p>
85
a = [1, 2, 3] a.clear() print(a) # []<p>Возвращает индекс элемента списка в Python:</p>
86
a = [1, 2, 3] print(a.index(2)) # 1<p>Если элемента нет в списке, выведется ошибка:</p>
86
a = [1, 2, 3] print(a.index(2)) # 1<p>Если элемента нет в списке, выведется ошибка:</p>
87
a = [1, 2, 3] print(a.index(4)) # ValueError: 4 is not in list<p>Удаляет элемент по индексу и возвращает его как результат:</p>
87
a = [1, 2, 3] print(a.index(4)) # ValueError: 4 is not in list<p>Удаляет элемент по индексу и возвращает его как результат:</p>
88
a = [1, 2, 3] print(a.pop()) # 3 print(a) # [1, 2]<p>Мы не передали индекс в метод, поэтому он удалил последний элемент списка. Если передать индекс, то получится так:</p>
88
a = [1, 2, 3] print(a.pop()) # 3 print(a) # [1, 2]<p>Мы не передали индекс в метод, поэтому он удалил последний элемент списка. Если передать индекс, то получится так:</p>
89
a = [1, 2, 3] print(a.pop(1)) # 2 print(a) # [1, 3]<p>Считает, сколько раз элемент повторяется в списке:</p>
89
a = [1, 2, 3] print(a.pop(1)) # 2 print(a) # [1, 3]<p>Считает, сколько раз элемент повторяется в списке:</p>
90
a = [1, 1, 1, 2] print(a.count(1)) # 3<p>Сортирует список:</p>
90
a = [1, 1, 1, 2] print(a.count(1)) # 3<p>Сортирует список:</p>
91
a = [4, 1, 5, 2] a.sort() print(a) # [1, 2, 4, 5]<p>Если нам нужно отсортировать в обратном порядке - от большего к меньшему, - в методе есть дополнительный параметр reverse:</p>
91
a = [4, 1, 5, 2] a.sort() print(a) # [1, 2, 4, 5]<p>Если нам нужно отсортировать в обратном порядке - от большего к меньшему, - в методе есть дополнительный параметр reverse:</p>
92
a = [4, 1, 5, 2] a.sort(reverse=True) print(a) # [5, 4, 2, 1]<p>Переставляет элементы в обратном порядке:</p>
92
a = [4, 1, 5, 2] a.sort(reverse=True) print(a) # [5, 4, 2, 1]<p>Переставляет элементы в обратном порядке:</p>
93
a = [1, 3, 2, 4] a.reverse() print(a) # [4, 2, 3, 1]<p>Копирует список:</p>
93
a = [1, 3, 2, 4] a.reverse() print(a) # [4, 2, 3, 1]<p>Копирует список:</p>
94
a = [1, 2, 3] b = a.copy() print(b) # [1, 2, 3]<p>Для того чтобы быстро находить нужные методы во время работы, пользуйтесь этой шпаргалкой.</p>
94
a = [1, 2, 3] b = a.copy() print(b) # [1, 2, 3]<p>Для того чтобы быстро находить нужные методы во время работы, пользуйтесь этой шпаргалкой.</p>
95
МетодЧто делаетa.append(x)Добавляет элемент<strong>x</strong>в конец списка<strong>a</strong>. Если<strong>x</strong>- список, то он появится в <strong>a</strong>как вложенныйa.extend(b)Добавляет в конец<strong>a</strong>все элементы списка<strong>b</strong>a.insert(i, x)Вставляет элемент<strong>x</strong>на позицию<strong>i</strong>a.remove(x)Удаляет в<strong>a</strong>первый элемент, значение которого равно<strong>x</strong>a.clear()Удаляет все элементы из списка<strong>a</strong>и делает его пустымa.index(x)Возвращает индекс элемента спискаa.pop(i)Удаляет элемент по индексу и возвращает егоa.count(x)Считает, сколько раз элемент повторяется в спискеa.sort()Сортирует список. Чтобы отсортировать элементы в обратном порядке, нужно установить дополнительный аргумент<strong>reverse=True</strong>a.reverse()Возвращает обратный итератор списка<strong>a</strong>a.copy()Создаёт поверхностную копию списка. Для создания глубокой копии используйте метод<strong>deepcopy</strong>из модуля<strong>copy</strong><p>Лучше не учить это всё, а применять на практике. А ещё лучше - попытаться написать каждый метод самостоятельно, не используя никакие встроенные функции.</p>
95
МетодЧто делаетa.append(x)Добавляет элемент<strong>x</strong>в конец списка<strong>a</strong>. Если<strong>x</strong>- список, то он появится в <strong>a</strong>как вложенныйa.extend(b)Добавляет в конец<strong>a</strong>все элементы списка<strong>b</strong>a.insert(i, x)Вставляет элемент<strong>x</strong>на позицию<strong>i</strong>a.remove(x)Удаляет в<strong>a</strong>первый элемент, значение которого равно<strong>x</strong>a.clear()Удаляет все элементы из списка<strong>a</strong>и делает его пустымa.index(x)Возвращает индекс элемента спискаa.pop(i)Удаляет элемент по индексу и возвращает егоa.count(x)Считает, сколько раз элемент повторяется в спискеa.sort()Сортирует список. Чтобы отсортировать элементы в обратном порядке, нужно установить дополнительный аргумент<strong>reverse=True</strong>a.reverse()Возвращает обратный итератор списка<strong>a</strong>a.copy()Создаёт поверхностную копию списка. Для создания глубокой копии используйте метод<strong>deepcopy</strong>из модуля<strong>copy</strong><p>Лучше не учить это всё, а применять на практике. А ещё лучше - попытаться написать каждый метод самостоятельно, не используя никакие встроенные функции.</p>
96
<p>Сколько бы вы ни писали код на Python, всё равно придётся подсматривать в документацию и понимать, какой метод что делает. И для этого есть разные удобные сайты - например, полный список методов можно посмотреть на <a>W3Schools</a>.</p>
96
<p>Сколько бы вы ни писали код на Python, всё равно придётся подсматривать в документацию и понимать, какой метод что делает. И для этого есть разные удобные сайты - например, полный список методов можно посмотреть на <a>W3Schools</a>.</p>
97
<p>Python для всех</p>
97
<p>Python для всех</p>
98
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
98
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
99
<p><a>Пройти бесплатно</a></p>
99
<p><a>Пройти бесплатно</a></p>
100
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
100
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>