списки в Python

Друзья, приветствую вас на 4ом уроке Python. На самом первом занятии мы разбирались с тем, что такое переменные в Python. Они прекрасно подходят для хранения каких-либо одиночных значений. Например, строка или число. Но что делать, если нам нужно обработать целый ряд похожих переменных? В других языках программирования это называется «массивами», а у нас это будут списки. Итак, тема сегодняшнего занятия — списки в Python.

Списки в Python — это не массивы

Это гораздо лучше. И сейчас я расскажу вам, почему. Обратимся к терминологии. Строго говоря, массив — это определённое количество элементов одного типа. В массивах совсем другой способ хранения данных: там нет индексации и заранее определённого размера. Другое дело — списки в Python! Это, можно сказать, динамический массив. Размеры для списков задавать не нужно. Их можно расширять. Столько, сколько захотите. Можно добавить элементы разных типов (а можно и вложенные списки), и каждый из них будет иметь свой порядковый номер. Ну разве не прелесть?

Простой список состоит из двух квадратных скобок и значений, которые перечислены через запятую. Список может быть числовым, строковым, смешанным. Каждому элементу присваивается свой индекс. Это значит, что по номеру из списка можно всегда «вытащить» необходимое значение. Важно лишь помнить, что такой индекс начинается не с «1», как мы все привыкли, а с «0». Взгляните, ниже я привёл примеры того, как могут выглядеть списки в Python.

Работа со списками в Python

Срезы в списках

Списки в Python можно изменять, дополнять, сортировать и «выдёргивать» из них необходимые значения. Начнём с простого. Давайте зададим список и попросим программу «выдернуть» несколько определённых значений. В работе с языком Python это называется «срез». Далее, чтобы быть более предметным, я буду приводить пример на списке… продуктов. Итак, есть определённый список продуктов, и нам захотелось «вспомнить», что там было на втором месте.

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

  • «выдернуть» диапазон значений (например, с третьего по шестой элемент);
  • получить срез с определённого значения и до конца списка;
  • получить каждый второй (третий, четвёртый и т.д.) элемент из списка;
  • или вовсе изменить порядок списка на обратный.

Впрочем списки, напомню, могут быть сколь угодно длинные. А значит, не всегда будет удобно считать, каким номером идёт последний или предпоследний элемент списка. Списки в Python учитывают эти сложности. Чтобы запросить последний элемент, нужно вставить индекс «-1», предпоследний — «-2» и так далее. Попробуем вывести на экран предпоследний элемент:

Списки в Python: добавление, удаление, расширение

Чтобы добавить новый элемент в конец списка, следует воспользоваться функцией append.

Разумеется, не всегда удобно, что новый элемент «приклеивается» к концу списка. А что, если мне нужно поставить его на определённое место? Не вопрос. Используем функцию insert, указывая индекс (адрес, куда нужно вставить элемент) нового элемента. Попробуем?

Нужно удалить элемент из списка? Да пожалуйста. Нам потребуется функция pop. Точно так же нужно указать индекс (адрес, откуда нужно удалить элемент). К слову, если функции ничего не задать в скобках, она удалит последний элемент списка. Давайте пробовать на практике!

А если потребуется удалить элемент списка, зная его значение, но не зная индекса, воспользуйтесь функцией remove. Если в списке есть несколько идентичных значений, то удалено будет первое попавшееся.

А давайте попробуем «склеить» два списка? Будем использовать функцию extend. Создадим ещё один список, например, список дел. А потом…

В целом, то же можно сделать и при помощи простого сложения. Никто нам этого в языке Python не запрещает.

Что ещё можно сделать со списками в Python?

Что ещё умеют списки в Python? Мы можем их отсортировать по возрастанию или по алфавиту (в зависимости от того, какой тип списка у нас под рукой). Сделать это можно при помощи функции sort. Продемонстрирую на примере: если вы всё правильно сделали, то программа должна выдать «хлеб».

Ранее я писал, что не всегда удобно считать количество элементов списка. Теперь же оговорюсь: неудобно это делать вручную. А в языке Python для этого есть встроенная функция len. Вот, как ей пользоваться:

Списки в Python — достаточно мощный инструмент. Помимо всего описанного, можно скопировать все значения списка в другой список (метод copy), посчитать, сколько раз встречается то или иное значение (метод count), узнать индекс элемента (метод index — вернёт индекс первого попавшегося).

И ещё кое-что интересное

Часто бывает, что приходится работать именно со «словесными» списками, переводя список в строку (т.е. в одну переменную). Сделать это можно следующим образом, задав специальный разделитель (если этого не сделать, то слова будут склеены в одно).

Ну и, конечно, всегда можно очистить список от элементов, применив метод clear().

Домашнее задание

Создайте прототип программы «список покупок». Для этого дайте программе задание несколько раз спросить, что вы хотите добавить в список покупок. Затем отсортируйте значения по алфавиту и выведите значения одной строкой. Забегая вперёд, скажу — лучше всего это, конечно, сделать, зная циклы Python. Но это уже тема следующего урока. Удачи, встретимся!

Показать решение


Один комментарий к “Списки в Python — урок №4”
  1. Методы списков в Python, конечно, удивляют. Могу теперь крутить-вертеть списками, как захочу

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить