Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Модификация Python: Списки

Примитивные типы данных, с которыми мы работали до сих пор, невозможно изменять. Любые функции и методы над ними возвращают новые значения, но не могут ничего сделать со старым.

name = 'Hexlet'
name.upper() # 'HEXLET'
# Значение name не поменялось
print(name) # 'Hexlet'

Со списками это правило не работает. Списки могут меняться: увеличиваться, уменьшаться, изменять значения по индексам. Ниже мы разберем все эти операции.

Изменение элементов списка

Синтаксис изменения элемента списка практически такой же, как и при обращении к элементу списка. Разница лишь в наличии присваивания:

animals = ['cats', 'dogs', 'birds']
# Меняется первый элемент списка
animals[0] = 'horses'
print(animals) # => [ 'horses', 'dogs', 'birds' ]

Добавление элемента в список

Метод append() добавляет элемент в конец списка:

animals = ['cats', 'dogs', 'birds']
animals.append('horses')

# Список animals изменен — стал больше
print(animals) # => [ 'cats', 'dogs', 'birds', 'horses' ]

# Строка 'horses' была добавлена в конец списка (индекс = 3)
print(animals[3]) # => 'horses'

Метод insert() добавляет элемент перед указанным по индексу элементом списка:

animals = ['cats', 'dogs', 'birds']
# Добавит элемент перед 2 индексом, то есть между 'dogs' и 'birds'
animals.insert(2, 'horses')
print(animals) # => ['cats', 'dogs', 'horses', 'birds']

Метод extend() расширяет список всеми элементами из переданного списка:

animals = ['cats', 'dogs']
birds = ['heron', 'sparrow', 'swift']

animals.extend(birds)
print(animals) # => ['cats', 'dogs', 'heron', 'sparrow', 'swift']

Новички часто совершают такую ошибку:

l = [1]
l = l.append(2)
print(l)  # None
# A где список?

Нужно помнить, что определенные методы изменяют сам список, но возвращают None. Это избавит от потенциальных ошибок и удивления.

Удаление элемента из списка

Удалить элемент из списка можно с помощью оператора del.

animals = ['cats', 'dogs', 'birds']
# удаляем элемент под индексом 1
del animals[1]
print(animals) # => ['cats', 'birds']

В общем случае уменьшение размера списка — нежелательная операция. Особенно сильно она может подвести при обходе списка в цикле. Подробнее об этом поговорим в одном из следующих уроков.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 7 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 7 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу