img
img
02 мая 2022
06 мая 2022
5 мин
593

Как работать со списками в Python

Учимся добавлять и изменять элементы, объединять и копировать списки.

img

В современных языках программирования есть предустановленные типы: символы, числа или классы. Есть и коллекции — массивы, списки и прочие структуры данных — множества элементов фиксированной или динамической размерности.

При объявлении переменной под объект выделяется оперативная память. Например, для строки в четыре символа — восемь байт. Каждый символ занимает адрес в оперативной памяти, а строка представляет собой массив этих адресов. В C-подобных языках массивы создаются определенного размера, под тип объектов. В Python же нет ограничений ни по типу элементов множества, ни по его размерности. То есть список в Python — это динамическая коллекция указателей.

Как решать типовые задачи

🚀 Объявить список

Синтаксическая конструкция для создания списка Python:

mylst = [1, 2, 3, 4, 5]

Mylst — название переменной. В скобках указали элементы.

В Python есть ключевое слово list(). Это функция, которая либо создает пустой список, либо приводит к списку итерируемый объект. Чтобы создать пустой объект списка с помощью функции, напишите:

mylst = list()

🚀 Обратиться к элементу

Списки — это множества элементов. Чтобы обратиться к ним, указывают индекс — порядковый номер. В отличие, например, от словаря, который позволяет получать значение по ключу. Индекс первого элемента — 0, второго — 1, третьего — 2.

Так обратитесь к пятому элементу списка:


mylst = [1, 2, 3, 4, 5]

print(mylst[4])

5

🚀 Добавить элемент

Сделайте это с помощью встроенной функции append():


mylst = [1, 2, 3, 4, 5]

mylst.append(6)

print(mylst)

[1, 2, 3, 4, 5, 6]

Либо с помощью метода insert(), который принимает два аргумента — индекс и значение:


mylst = [1, 2, 3, 4, 5]

mylst.insert(1, 25)

print(mylst)

[1, 25, 2, 3, 4, 5]

❗ Если добавить элемент с помощью этого метода, произойдет смещение, а не его замена.

🚀 Изменить элемент

Для этого установите новое значение по его индексу:


mylst = [1, 2, 3, 4, 5]

mylst[1] = None

print(mylst)

[1, None, 3, 4, 5]

В Python необязательно, чтобы элементы коллекции были одного типа.

🚀 Удалить элемент

Для этого воспользуйтесь встроенной функцией del():


mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1]

del mylst[2]

print(mylst)

[1, 2, 4, 5, 4, 3, 2, 1]

Либо примените метод удаления remove():


mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1]

mylst.remove(2)

print(mylst)

[1, 3, 4, 5, 4, 3, 2, 1]

🚀 Проверить на вхождение

Чтобы проверить, есть ли указанный элемент в списке, воспользуйтесь ключевым словом in:


mylst = [1, 2, 3, 4, 5]

print(None in mylst)

False

print(3 in mylst)

True

🚀 Объединить списки

Вызовите метод extend():


mylst = [1, 2]

mylst1 = [3, 4]

mylst2 = [5]

mylst.extend(mylst1)

print(mylst)

[1, 2, 3, 4]

mylst.extend(mylst2)

print(mylst)

[1, 2, 3, 4, 5]

Или оператор сложения с присваиванием:


mylst = [1, 2]

mylst1 = [3, 4]

mylst2 = [5]

mylst += mylst1

print(mylst)

[1, 2, 3, 4]

mylst += mylst2

print(mylst)

[1, 2, 3, 4, 5]

🚀 Копировать список

Воспользуйтесь методом списков copy():


mylst = [1, 2, 3, 4, 5]

mylst_copy = mylst.copy()

print(mylst)

[1, 2, 3, 4, 5]

print(mylst_copy)

[1, 2, 3, 4, 5]

Либо создайте полный срез:


mylst = [1, 2, 3, 4, 5]

mylst_copy = mylst[::]

print(mylst)

[1, 2, 3, 4, 5]

print(mylst_copy)

[1, 2, 3, 4, 5]

🚀 Выполнить итерацию по списку

Воспользуйтесь конструкцией for:


mylst = [1, 2, 3, 4, 5]

for item in mylst:

    print(item)

1

2

3

4

5

Итерацию еще выполняют с помощью цикла while:


mylst = [1, 2, 3, 4, 5]

i = 0

while True:

    try:

        print(mylst[i])

    except IndexError:

        print("Done!")

        break

    i += 1

1

2

3

4

5

Done!

«Если вы думаете, что хорошо разбираетесь в списках, подумайте еще раз. Дело в том, что списки в Python больше похожи на то, что мы привыкли называть массивами в других языках программирования, а не на связанные списки, которые обычно приходят на ум при слове „список“».

Пол Бэрри «Изучаем программирование на Python»

Методы списков

✔️ index

Позволяет узнать индекс элемента, возвращает его при первом совпадении:


mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1]

print(mylst.index(3))

2

✔️ count

Позволяет получить количество элементов списка:


mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1]

count_for_one = mylst.count(1)

print(count_for_one)

2

count_for_five = mylst.count(5)

print(count_for_five)

1

✔️ clear

Полностью очищает список:


mylst = [1, 2, 3, 4, 5]

mylst.clear()

print(mylst)

[]

✔️ sort

Сортирует список по указанному ключу. Принимает два необязательных аргумента: key — ключ, по которому производят сортировку, булевый флаг reverse — сортирует объекты в обратном порядке. По умолчанию в качестве ключа используют значение переменной:


mylst = [1, 3, 2, 4, 5]

mylst.sort() # reverse=False

print(mylst)

[1, 2, 3, 4, 5]

✔️ reverse

Инвертирует последовательность элементов:


mylst = [1, 2, 3, 4, 5]

mylst.reverse()

print(mylst)

[5, 4, 3, 2, 1]

✔️ pop

Позволяет получить элемент и удаляет его из списка. Принимает индекс в качестве необязательного аргумента. По умолчанию это последний элемент:


mylst = [1, 2, 3, 4, 5]

x = mylst.pop()

print(x)

5

print(mylst)

[1, 2, 3, 4]

y = mylst.pop(2)

print(y)

3

print(mylst)

[1, 2, 4]

Встроенные функции

✅ Получение длины любой коллекции

Используйте функцию len():


mylst = [1, 2, 3, 4, 5]

list_length = len(mylst)

print(list_length)

5

✅ Возврат элемента с максимальным значением

Используйте функцию max():


mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1]

max_value = max(mylst)

print(max_value)

5

Возврат элемента с минимальным значением

Используйте функцию min():


mylst = [1, 2, 3, 4, 5]

min_value = min(mylst)

print(min_value)

1

Приведение к типу

Из любого итерируемого объекта можно получить список. Для этого передайте итерируемый объект функции list(). Этим объектом может быть строка, множество, кортеж или генератор:


myset = {1, 2, 3, 4}

mytuple = (5, 6)

mystring = "Test string"

lst1 = list(myset)

lst2 = list(mytuple)

lst3 = list(mystring)

print(lst1)

[1, 2, 3, 4]

print(lst2)

[5, 6]

print(lst3)

['T', 'e', 's', 't', ' ', 's', 't', 'r', 'i', 'n', 'g']

Работа со срезами

Срезы позволяют создавать новые списки на основе существующего. Можно получить полную копию списка или некоторые элементы. Для этого используют шаг или указывают начальный и крайний индексы:


mylst = [1, 2, 3, 4, 5]

mylst_slice_0 = mylst[::] # полная копия

print(mylst_slice_0)

[1, 2, 3, 4, 5]

mylst_slice_1 = mylst[0:2] # крайний индекс (не включается в срез)

print(mylst_slice_1)

[1, 2]

mylst_slice_2 = mylst[::2] # указание шага

print(mylst_slice_2)

[1, 3, 5]

Синтаксис работы со срезами:


# имя переменной[стартовый индекс:конечный индекс:шаг]

variable_name[start_index:end_index:step]

Генератор списков

Эта конструкция позволяет легко создавать списки:


mylst = [_ for _ in range(6)]

print(mylst)

[0, 1, 2, 3, 4, 5]

Вы можете указать условия для генерации элементов:

mylst = [x if x % 2 == 0 else "odd" for x in range(20)]

print(mylst)

[0, 'odd', 2, 'odd', 4, 'odd', 6, 'odd', 8, 'odd', 10, 'odd', 12, 'odd', 14, 'odd', 16, 'odd', 18, 'odd']

Главное о списках в Python

  • Списки — это коллекции указателей на элементы. В Python необязательно, чтобы все элементы списка были одного типа.
  • Список создают с помощью функции list(), генератора списков или срезов.
  • Решать типовые задачи позволяют методы списков: insert() — добавить элементы, remove() — удалить, extend() — объединить, copy() — копировать. А еще index(), sort() и другие.
  • В Python есть встроенные функции, чтобы работать с объектами. Например, del(), list(), len(), max(), min().

Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Вас ждут 400 часов теории и практики, живые вебинары для разбора домашек. Сделаете четыре проекта для портфолио, получите диплом о переподготовке и помощь в поиске работы: создадите цепляющее резюме и подготовитесь к собеседованиям.

img
Подпишитесь на рассылку, чтобы Не упустить что-нибудь новое
Просто и понятно о том, как получить новую профессию


    Дадим нужные знания и поможем получить работу!
    Регистрируйтесь на курс и учитесь у экспертов-практиков.
    Профессия
    за 10 месяцев
    Python-разработчик
    • Программа соответствует требованиям к вакансиям работодателей
    • Много практики в среде коммерческой разработки
    • Под силу даже если у вас нет опыта в IT
    • Всего 11 часов в неделю
    2973 ₽/мес.
    Ещё по теме
    Что такое Agile

    Agile — это группа гибких методов, чтобы улучшать продукт.

    20 июня 2022
    4 мин
    5 причин освоить Python

    Это универсальный и перспективный язык, который подходит новичкам.

    Как отбирают кандидатов в IT-компаниях

    IT-рекрутер обращает внимание на то, как вы мыслите и рассуждаете.

    5 причин научиться программировать на Java

    Этот язык постоянно развивается, но остается стабильным, на нём кодят уже 27 лет.

    Как работать со словарями в Python

    Словарь создают с помощью ключевого слова dict, синтаксиса языка.

    Каково быть тестировщиком: 4 истории о боли и радости

    Рассказы тестировщиков: какие ошибки они замечают в обычной жизни.

    Что такое Node.js и зачем ее изучать

    Node.js — платформа с открытым исходным кодом для работы с JavaScript.

    09 июня 2022
    5 мин
    Что такое массивы в Java и как с ними работать

    Массив — это набор однотипных элементов, упорядоченных по номерам.

    Как написать тест-кейс

    Создавайте простые тест-кейсы и учитывайте интересы пользователя.

    06 июня 2022
    6 мин
    Мифы о программистах

    Есть стереотипы, что программисты — это мужчины, всемогущие хакеры и интроверты.

    17 мая 2022
    2 мин
    Код: что ты такое

    Код определяет внешний вид и внутреннюю логику программ, сайтов.

    17 мая 2022
    2 мин
    7 англоязычных подкастов для тех, кто хочет прокачаться в IT

    Про Python, frontend-разработку, мягкие навыки, работу над проектами.

    17 мая 2022
    3 мин
    6 ютуб-каналов для разработчиков

    Ответы на вопросы новичков, интервью успешных спецов, полезные советы.

    17 мая 2022
    2 мин
    Женщины в IT

    Достижения и цитаты шести героинь, которые не побоялись попробовать себя в IT.

    17 мая 2022
    2 мин
    Почему IT — сфера будущего

    Информационные технологии помогают бизнесу зарабатывать и упрощают жизнь.

    IT-компания — это не только Google

    Рассказываем про «Тинькофф», «Билайн» и другие компании.

    16 мая 2022
    2 мин
    Как составить и оформить баг-репорт

    Указывайте в отчете только одну ошибку, прикладывайте скрины, сообщения и коды.

    04 мая 2022
    6 мин
    Цикл for в Java: что это, как с ним работать

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

    Как работать с модулем JSON в Python

    JSON часто применяют, когда разрабатывают API и веб-приложения.

    25 апреля 2022
    9 мин
    Как IT-специалисту из России найти работу за рубежом в 2022 году

    Есть сервисы, платформы и телеграм-каналы с вакансиями по всему миру.

    21 апреля 2022
    6 мин
    Что такое HTML: основные теги

    С помощью HTML структурируют страницу на сайте, добавляют картинки, таблицы, списки.

    Как работает цикл for в Python

    Цикл for используют, когда количество повторов известно заранее.

    Комьюнити для разработчика

    Есть комьюнити на платформах, под эгидой компаний или самоорганизующиеся.

    07 апреля 2022
    6 мин
    Гайд: как определить, какое направление в IT тебе подходит

    Обязанности и зарплата аналитика, Python- и Java-разработчиков и не только.

    Правильное питание на удаленке. Почему это важно?

    Правильное питание — это не о жестких диетах и полном отказе от любимых продуктов.

    01 апреля 2022
    7 мин
    Как я нашла время на учебу, когда времени не было совсем

    Благодаря методу «круга-пирога» увидите свое время и возьмете его под контроль.

    9 причин, почему не получается внедрять полезные привычки

    Ищите мотивацию, хвалите себя, визуализируйте план и результат.

    Как больше успевать: зачем есть по одной лягушке в день и как справиться со слоном

    Лягушки — небольшие, но неприятные дела, слоны — долговременные задачи.

    Как поставить цель и не бросить на полпути

    Когда ставите цель, отталкивайтесь от проблемы и конкретизируйте решение.

    Кто такой менеджер проектов, чем занимается и как им стать

    Этот специалист контролирует все этапы проекта и приводит его к успеху.

    30 марта 2022
    8 мин
    Как не угробить здоровье на удаленке

    Советы всем удаленщикам — больше двигаться, делать зарядку, разминку для глаз.

    30 марта 2022
    9 мин
    Junior, Middle, Senior в разработке — кто есть кто и как перейти на уровень выше

    Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.

    29 марта 2022
    12 мин
    Как банковская служащая в 32 года с нуля перешла в IT и в 40 открыла свою компанию по разработке онлайн-игр

    Совет от героини: сделайте первый шаг, дальше будет проще; учитесь и идите вперед.

    Пять приложений, чтобы не отвлекаться от учебы и работы

    Фишки и стоимость Forest, WaterDo, SleepTown, Alarmy, Pomodoro Timer Lite.

    29 марта 2022
    5 мин
    Язык SQL: что это такое и зачем он нужен

    SQL используют в банках, торговле, перевозках: везде, где много информации.

    29 марта 2022
    7 мин
    Как освоить c нуля IT-профессию и перейти на новую работу без опыта

    Сначала поставьте цель: выберите сферу и определите, кем видите себя через 10 лет.

    Словарь IT-сленга

    Термины разработки, Scrum, неформального общения, организационных процессов.

    29 марта 2022
    13 мин
    Подборка: 33 книги и подкаста для начинающих программистов

    Узнаете о работе программиста и поймете, как писать хороший код.

    28 марта 2022
    10 мин
    Хакнуть мозг: как современные знания помогают мозгу развиваться и учиться

    Мозг меняется всю жизнь. Мы можем на него влиять: изучать новое, развивать навыки.

    28 марта 2022
    8 мин
    Что такое CSS и как с ним работать

    С помощью CSS задают цвет, размеры, анимацию, адаптируют сайт под устройства.

    16 марта 2022
    9 мин
    css
    Как создать телеграм-бота на Python

    Python — самый популярный язык программирования в феврале 2022 года.

    16 марта 2022
    9 мин
    Какие профессии в IT подойдут гуманитарию

    Гуманитарию подойдут профессии тестировщика, веб-дизайнера и не только.

    15 марта 2022
    9 мин
    Frontend или backend: чем отличаются и какой вид разработки выбрать

    Фронтендер создает интерфейс продукта, бэкендер работает с серверной частью.

    15 марта 2022
    7 мин
    Кто такой Java-разработчик, чем занимается и как им стать

    Обязанности Java-разработчика — писать код, тестировать и улучшать его.

    15 марта 2022
    7 мин
    Что такое IT-сфера и почему она сейчас так популярна

    IT-отрасль привлекает удаленкой, карьерным ростом, высоким доходом.

    04 марта 2022
    7 мин
    it
    Как установить Python на компьютер и начать на нём писать

    Воспользуйтесь Google Colab, онлайн-интерпретаторами или скачайте Python.

    Postman: как пользоваться программой для тестирования API

    Бесплатный сервис позволяет писать тесты, поддерживает разные типы API.

    04 марта 2022
    6 мин
    api
    Google Colab: что это такое и как с ним работать

    Colab используют, чтобы создавать код на Python прямо в браузере.

    04 марта 2022
    4 мин
    Как перейти в разработчики из другой профессии

    Освоить новую профессию реально с нуля в любом возрасте, главное — мотивация.

    03 марта 2022
    8 мин
    Как помочь ребенку выбрать профессию

    Не выбирайте по принципу «чем проще, тем лучше» и уважайте желания ребенка.

    03 марта 2022
    7 мин
    Нужно ли высшее образование программисту: сравниваем все «за и «против»

    Важнее опыт и проекты в портфолио, но иногда высшее образование все-таки нужно.

    02 марта 2022
    5 мин
    Стоит ли переходить на удаленку: плюсы и минусы

    Сегодня удаленка доступна для разных сфер: ИТ, маркетинг, сервис, продажи.

    02 марта 2022
    6 мин
    Какой язык программирования выбрать новичку

    Выбирайте по уровню спроса у работодателей и направлению в программировании.

    24 февраля 2022
    7 мин
    Фильмы про программистов: лучшие фильмы и сериалы про компьютерных гениев

    20 фильмов и сериалов для тех, кому интересен мир информационных технологий.

    24 февраля 2022
    7 мин
    Фронтенд-разработчик: кто это такой и как им стать с нуля

    Frontend-разработчик создает внешнюю — пользовательскую часть веб-ресурса.

    24 февраля 2022
    8 мин
    Backend-разработчик: кто это такой и чем он занимается

    Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.

    24 февраля 2022
    9 мин
    Что такое спринты в программировании и как их выполнять

    Спринты используют в долгих проектах и сложных продуктах.

    Как начать изучать Python

    Преимущества Python — понятный синтаксис и читаемость, готовые библиотеки.

    24 февраля 2022
    9 мин
    Jupyter Notebook: что это такое и как им пользоваться

    Jupyter-ноутбуки применяют для визуализации данных в big data и data science.

    24 февраля 2022
    7 мин
    Как развить soft skills

    Soft skills помогают развивать компетенции, осваивать новые тенденции в работе.

    24 февраля 2022
    11 мин
    Как начать изучать Java

    На Java разрабатывают всё: от приложений и ПО до технологий Big Data.

    kralbetbetturkeyikimislibahis1xbetm.infohipas.infohttps://www.wiibet.com/restbetcdn.com
    Вставить формулу как
    Блок
    Строка
    Дополнительные настройки
    Цвет формулы
    Цвет текста
    #333333
    Используйте LaTeX для набора формулы
    Предпросмотр
    \({}\)
    Формула не набрана
    Вставить