0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>11 ноя 2022</li>
2
<ul><li>11 ноя 2022</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>Методы append() и extend() позволяют добавить новый элемент в уже существующий список или объединить несколько list-объектов в один. В этой статье мы расскажем и покажем на примерах, как ими пользоваться. А в конце - поделимся менее очевидными способами расширения списков.</p>
7
<p>Методы append() и extend() позволяют добавить новый элемент в уже существующий список или объединить несколько list-объектов в один. В этой статье мы расскажем и покажем на примерах, как ими пользоваться. А в конце - поделимся менее очевидными способами расширения списков.</p>
8
<p>append() добавляет в конец списка элемент, переданный ему в качестве аргумента. Как и все методы в Python, он вызывается через оператор<strong>.</strong>(точка).</p>
8
<p>append() добавляет в конец списка элемент, переданный ему в качестве аргумента. Как и все методы в Python, он вызывается через оператор<strong>.</strong>(точка).</p>
9
list.append(item)<p>append() принимает один аргумент item и добавляет его в конец list. Тип параметра может быть любым: числа, строки, словари и так далее. Метод возвращает объект None - то есть ничего.</p>
9
list.append(item)<p>append() принимает один аргумент item и добавляет его в конец list. Тип параметра может быть любым: числа, строки, словари и так далее. Метод возвращает объект None - то есть ничего.</p>
10
<p>Допустим, у нас есть список a, который заполнен строками:</p>
10
<p>Допустим, у нас есть список a, который заполнен строками:</p>
11
a = ['car', 'top', 'lot']<p>Если мы захотим добавить в него новую строку 'row', то передадим её в качестве аргумента в append(). Так как метод принадлежит типу list, то вызывать его нужно для объекта a через точку:</p>
11
a = ['car', 'top', 'lot']<p>Если мы захотим добавить в него новую строку 'row', то передадим её в качестве аргумента в append(). Так как метод принадлежит типу list, то вызывать его нужно для объекта a через точку:</p>
12
a.append('row') print(a) ['car', 'top', 'lot', 'row']<p>Строка добавилась в конец нашего списка. Всё работает.</p>
12
a.append('row') print(a) ['car', 'top', 'lot', 'row']<p>Строка добавилась в конец нашего списка. Всё работает.</p>
13
<p>Усложним задачу и попробуем добавить ещё один список из двух строк:</p>
13
<p>Усложним задачу и попробуем добавить ещё один список из двух строк:</p>
14
b = ['moon', 'sun'] a.append(b) print(a) ['car', 'top', 'lot', 'row', ['moon', 'sun']]<p>Как мы видим, в a добавился список b с вложенными в него элементами. А если мы захотим, чтобы элементы из b добавились отдельно? Вот так:</p>
14
b = ['moon', 'sun'] a.append(b) print(a) ['car', 'top', 'lot', 'row', ['moon', 'sun']]<p>Как мы видим, в a добавился список b с вложенными в него элементами. А если мы захотим, чтобы элементы из b добавились отдельно? Вот так:</p>
15
['car', 'top', 'lot', 'row', 'moon', 'sun']<p>К сожалению, с помощью append() этого сделать нельзя, потому что метод принимает только один аргумент. Если вы всё-таки попытаетесь передать несколько объектов через запятую, то интерпретатор вызовет исключение TypeError (ошибка типа):</p>
15
['car', 'top', 'lot', 'row', 'moon', 'sun']<p>К сожалению, с помощью append() этого сделать нельзя, потому что метод принимает только один аргумент. Если вы всё-таки попытаетесь передать несколько объектов через запятую, то интерпретатор вызовет исключение TypeError (ошибка типа):</p>
16
a = [1, 2, 3] a.append(1, 2, 3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list.append() takes exactly one argument (3 given)<p>К счастью, есть метод extend(), который позволяет добавить одновременно несколько элементов. О нём и поговорим далее.</p>
16
a = [1, 2, 3] a.append(1, 2, 3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list.append() takes exactly one argument (3 given)<p>К счастью, есть метод extend(), который позволяет добавить одновременно несколько элементов. О нём и поговорим далее.</p>
17
<p>extend() принимает в качестве параметра итерируемый объект и объединяет его со списком.</p>
17
<p>extend() принимает в качестве параметра итерируемый объект и объединяет его со списком.</p>
18
list.extend(iterable)<p>extend() добавляет новые элементы в конец списка, но, в отличие от append(), принимает в качестве параметров итерируемые объекты: списки, кортежи и строки. При этом объединяемые списки могут содержать элементы любых типов: например, вы можете объединить строки с числами или числа с кортежами.</p>
18
list.extend(iterable)<p>extend() добавляет новые элементы в конец списка, но, в отличие от append(), принимает в качестве параметров итерируемые объекты: списки, кортежи и строки. При этом объединяемые списки могут содержать элементы любых типов: например, вы можете объединить строки с числами или числа с кортежами.</p>
19
<p>Как и append(), метод возвращает объект None.</p>
19
<p>Как и append(), метод возвращает объект None.</p>
20
<p>Вернёмся к нашему списку a:</p>
20
<p>Вернёмся к нашему списку a:</p>
21
a = ['car', 'top', 'lot']<p>Допустим, мы хотим соединить его с другим списком из строк. Передадим b в extend() и получим результат:</p>
21
a = ['car', 'top', 'lot']<p>Допустим, мы хотим соединить его с другим списком из строк. Передадим b в extend() и получим результат:</p>
22
b = ['dog', 'cat'] a.extend(b) print(a) ['car', 'top', 'lot', 'dog', 'cat']<p>Как видите, каждый элемент из b по отдельности добавился в a.</p>
22
b = ['dog', 'cat'] a.extend(b) print(a) ['car', 'top', 'lot', 'dog', 'cat']<p>Как видите, каждый элемент из b по отдельности добавился в a.</p>
23
<p>Мы можем сделать то же самое и с другим итерируемыми объектами - например, кортежами или строками:</p>
23
<p>Мы можем сделать то же самое и с другим итерируемыми объектами - например, кортежами или строками:</p>
24
c = ('like', 'mode') a.extend(c) print(a) ['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode'] d = 'man' a.extend(d) print(a) ['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode', 'm', 'a', 'n']<p><strong>Обратите внимание:</strong>строки, которые передаются в extend(), превращаются в списки символов и добавляются посимвольно. Так, строка 'man' разложилась на 'm', 'a', 'n'.</p>
24
c = ('like', 'mode') a.extend(c) print(a) ['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode'] d = 'man' a.extend(d) print(a) ['car', 'top', 'lot', 'dog', 'cat', 'like', 'mode', 'm', 'a', 'n']<p><strong>Обратите внимание:</strong>строки, которые передаются в extend(), превращаются в списки символов и добавляются посимвольно. Так, строка 'man' разложилась на 'm', 'a', 'n'.</p>
25
<p>Если передать в extend() не итерируемый объект, например число, Python генерирует TypeError:</p>
25
<p>Если передать в extend() не итерируемый объект, например число, Python генерирует TypeError:</p>
26
a = [1, 2, 3] a.extend(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable<p>В сообщении нам вежливо объясняют, что число - это не итерируемый объект.</p>
26
a = [1, 2, 3] a.extend(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable<p>В сообщении нам вежливо объясняют, что число - это не итерируемый объект.</p>
27
<p>Чтобы упростить жизнь питонистам, разработчики языка добавили пару фич, которые помогают быстро добавлять элементы в списки.</p>
27
<p>Чтобы упростить жизнь питонистам, разработчики языка добавили пару фич, которые помогают быстро добавлять элементы в списки.</p>
28
<p><strong>Оператор</strong><strong>+</strong><strong>.</strong>Он напоминает обычный математический оператор, но со списками действует как функция extend():</p>
28
<p><strong>Оператор</strong><strong>+</strong><strong>.</strong>Он напоминает обычный математический оператор, но со списками действует как функция extend():</p>
29
a = [2, 3] b = [1, 4] a += b print(a) [2, 3, 1, 4]<p>Все элементы одного списка добавились в конец другого.</p>
29
a = [2, 3] b = [1, 4] a += b print(a) [2, 3, 1, 4]<p>Все элементы одного списка добавились в конец другого.</p>
30
<p><strong>Срезы.</strong>Ещё один способ добавить элементы в список - нестандартно использовать индексацию. Выглядит это так:</p>
30
<p><strong>Срезы.</strong>Ещё один способ добавить элементы в список - нестандартно использовать индексацию. Выглядит это так:</p>
31
a = [2, 3] b = [1, 4] a[len(a):] = b print(a) [2, 3, 1, 4]<p>Выглядит немного странно, но это действительно работает. Когда мы пытаемся обратиться к несуществующим элементам a, язык добавляет новые элементы из списка b, ссылку на который мы передали справа от оператора присваивания.</p>
31
a = [2, 3] b = [1, 4] a[len(a):] = b print(a) [2, 3, 1, 4]<p>Выглядит немного странно, но это действительно работает. Когда мы пытаемся обратиться к несуществующим элементам a, язык добавляет новые элементы из списка b, ссылку на который мы передали справа от оператора присваивания.</p>
32
<ul><li>Функция<strong>append()</strong>позволяет добавлять в список один новый элемент - например, число, строку или другой список.</li>
32
<ul><li>Функция<strong>append()</strong>позволяет добавлять в список один новый элемент - например, число, строку или другой список.</li>
33
<li>Функция<strong>extend()</strong>работает как<strong>append()</strong>, но в качестве параметра принимает итерируемый объект: список, кортеж или строку. Содержимое этого объекта поэлементно добавляется в другой список.</li>
33
<li>Функция<strong>extend()</strong>работает как<strong>append()</strong>, но в качестве параметра принимает итерируемый объект: список, кортеж или строку. Содержимое этого объекта поэлементно добавляется в другой список.</li>
34
<li>Кроме методов <strong>append()</strong>и <strong>extend()</strong>добавить элементы в список можно с помощью оператора<strong>+</strong>и срезов. Оба способа действуют как<strong>extend()</strong> - поочерёдно добавляют элементы одного списка в другой.</li>
34
<li>Кроме методов <strong>append()</strong>и <strong>extend()</strong>добавить элементы в список можно с помощью оператора<strong>+</strong>и срезов. Оба способа действуют как<strong>extend()</strong> - поочерёдно добавляют элементы одного списка в другой.</li>
35
</ul><p>Python для всех</p>
35
</ul><p>Python для всех</p>
36
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
36
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
37
<p><a>Пройти бесплатно</a></p>
37
<p><a>Пройти бесплатно</a></p>
38
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
38
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>