Python списки

Списком в языке Python называется упорядоченная структура данных, которая используется для хранения объектов произвольных типов. В отличие от массивов, включающих в себя лишь однотипные элементы, списки не привязаны к определенной разновидности данных, а также не имеют жестких ограничений, связанных с их размером. Благодаря всем этим особенностям, списки являются достаточно гибким инструментом по работе с данными в Python.

Создание и заполнение

Перед тем как использовать список, необходимо его инициализировать. Как правило, сделать это можно несколькими способами. В данном примере показано, что будет, если определить пустой список с именем data, а затем вывести его содержимое на экран.

>>> data = []
>>> data
[]

Поместить все необходимые элементы в новый список можно прямо в момент его создания, просто перечислив их в квадратных скобках.

>>> data = [5, 'a', ['python'], 20]
>>> data
[5, 'a', ['python'], 20]

Для заполнения списков можно использовать разные литералы, к примеру, строки, вызывая встроенную функцию list, как это показано в следующем примере.

>>> data = list('python')
>>> data
['p', 'y', 't', 'h', 'o', 'n']

Чтобы автоматизировать заполнение совокупностей разнотипных объектов, рекомендуется использовать генераторы списков. Данные механизмы позволяют применять определенное выражение к каждому элементу заданной последовательности.

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

При занесении новых данных в список его размер автоматически увеличивается на нужное количество ячеек. Для того чтобы в Python добавить в список элемент стоит воспользоваться методом append, передав ему в качестве аргумента добавляемый объект. В результате выполнения этой функции, элемент будет добавлен в конец.

>>> data = list('pytho')
>>> data.append('n')
>>> data
['p', 'y', 't', 'h', 'o', 'n']

При необходимости любой из объектов можно размещать по заданному индексу в списке. Для этого используется метод с именем insert. Вызвав его для существующего списка, нужно передать в качестве аргументов желаемый номер элемента и сам объект.

>>> data = list('ython')
>>> data.insert(0, 'p')
>>> data
['p', 'y', 't', 'h', 'o', 'n']

Стоит принять во внимание, что нумерация объектов в списке осуществляется с нуля.

Расширение списка

Имея необходимость объединить два разных набора данных, представленных в виде списков, стоит воспользоваться методом extend. Выполнив его вызов для одного из объектов и записав в качестве аргумента другой объект, произойдет их слияние в одно целое.

>>> data1 = list('pyt')
>>> data2 = list('hon')
>>> data1.extend(data2)
>>> data1
['p', 'y', 't', 'h', 'o', 'n']

Таким образом, элементы второго списка будут автоматически записаны в конец первого.

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

Встроенные функции платформы позволяют не только добавлять новые данные, но и выборочно избавляться от них. Для того, чтобы удалить элемент из списка Python существуют функции remove и pop. В случае с первым методом происходит удаление первого по индексу объекта с выбранным значением.

>>> data = list('pytthon')
>>> data.remove('t')
>>> data
['p', 'y', 't', 'h', 'o', 'n']

Метод pop действует несколько иначе, давая возможность извлечь элемент списка по любому индексу, как это показано в следующем примере.

>>> data = list('pytthonn')
>>> data.pop(3)
't'
>>> data.pop()
'n'
>>> data
['p', 'y', 't', 'h', 'o', 'n']

Если же не передавать номер необходимого объекта, то удалится последний по счету.

Очистка списка

Быстро удалить все элементы списка поможет функция clear. Для этого потребуется вызвать ее через созданный ранее объект, как в следующем примере.

>>> data = list('python')
>>> data.clear()
>>> data
[]

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

Получение размера

Воспользовавшись встроенным методом с именем len, можно определить количество элементов в списке Python — его длину. Функция возвращает общее количество элементов.

>>> data = list('python')
>>> len(data)
6

Также существует возможность узнать количество выбранных объектов при помощи метода count. Его необходимо вызвать для текущего списка. В качестве аргументов здесь должен выступать искомый элемент.

>>> data = list('python')
>>> data.count('p')
1

Благодаря этой функции можно искать не только литералы, но и ссылки на объекты.

Сортировка

Сортировка списка Python осуществляется с помощью sort. Функция sort производит упорядочивание присутствующих в выбранном списке элементов, автоматически определяя наиболее подходящий способ сортировки.

>>> data = list('python')
>>> data.sort()
>>> data
['h', 'n', 'o', 'p', 't', 'y']

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

Переворачивание

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

>>> data = list('python')
>>> data.reverse()
>>> data
['n', 'o', 'h', 't', 'y', 'p']

Как можно увидеть, данная функция просто меняет порядок элементов на противоположный.

Копирование

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

>>> data1 = list('python')
>>> data2 = data1.copy()
>>> data2
['p', 'y', 't', 'h', 'o', 'n']

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

Поиск

Чтобы осуществить в Python поиск в списке и найти индекс известного элемента следует прибегнуть к функции index. Аргументом данного метода является искомый объект либо литерал.

>>> data = list('python')
>>> data.index('o')
4

Как можно увидеть из результатов этого действия, на экране отображается индекс элемента.

Преобразование списка в строку

Состоящий из символов список поддается конвертации в строчное представление. Для этого потребуется выполнить конкатенацию новой строки с возвращаемым значением функции join. В качестве аргумента для данного метода должен выступать список. Вот пример преобразования в строку списка Python.

>>> data = list('python')
>>> str = ''.join(data)
>>> str
'python'

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

Получение двумерного списка

Базовые возможности платформы позволяют работать с двумерным представлением набора определенных значений в программе. Реализовать это можно при помощи обычного оператора присваивания, просто добавляя список в список Python для получения двумерного списка.

>>> data = [[1, 2, 8], [2, 5, 6]]
>>> a[0]
[1, 2, 8]
>>> a[1]
[2, 5, 6]

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

Преобразование словаря в список

Как известно, словарь может хранить заданную коллекцию произвольных объектов, доступ к которым осуществляется по ключу. Воспользовавшись методом items, можно преобразовать словарь в список, как это показано в следующем примере.

>>> dic = {}
>>> dic['name'] = 'John'
>>> dic['age'] = 25
>>> data = dic.items()
>>> data
dict_items([('name', 'John'), ('age', 25)])

Элементы в инициализированном таким образом списке представлены в виде пар с ключом и соответствующим ему значением.

Заключение

Стандартная библиотека языка Python содержит множество полезных функций по работе со списками, что позволяет программисту эффективно манипулировать упорядоченным набором данных различных типов. Методы и операции со списками Python 3 предоставляют возможность не только автоматически менять внутреннее содержимое любого списка, но и конвертировать его в другие формы представления информации.