Не путайте в Python списки и массивы: в первых можно хранить разнородные объекты. Здесь кратко описаны все основные методы списков Python 3.x.
Когда речь идет о массивах, обычно мы подразумеваем набор однородных элементов. Но в Python списки – это не массивы. Список (list) может представлять коллекцию разнородных объектов: целые и дробные числа, строки, логические значения и т. д. Описанное свойство позволяет разработчикам применять списки более гибко, чем обычные массивы. Среди типов данных Python списки являются одним из наиболее мощных и часто используемых.
Как в Python создаются списки?
В Python списки создаются двумя способами:
- С помощью квадратных скобок []
- С помощью функции list()
Элементы списка можно сразу поместить внутрь скобок. По умолчанию создается пустой list.
>>> # Рассмотрим создание списка на примере дел
... # Второй будем использовать для хранения абстрактной информации
...
>>> todo_list = []
>>> general_info = list()
>>> type(todo_list), type(general_info)
(<class 'list'>, <class 'list'>)
Итак, мы создали два пустых списка. Заполним их данными.
Как добавить данные в список?
В языке программирования Python это изменяемые объекты. Можно добавлять, заменять или удалять конкретные элементы, не следя за остальными. Добавить элементы в список можно двумя методами:
- append()
- insert()
Добавление элемента методом append()
append() добавляет в конец списка элемент, переданный в качестве аргумента:
>>> todo_list.append('Завтрак, зарядка, душ')
>>> todo_list.append('Чтение статей на proglib')
>>> todo_list.append('Дорога до работы')
>>> todo_list
['Завтрак, зарядка, душ', 'Чтение статей на proglib', 'Дорога до работы']
Добавление элемента методом insert()
insert() принимает два аргумента – индекс позиции и вставляемый элемент:
>>> general_info.insert(0, 'Важные математические константы')
>>> general_info.insert(1, 1j)
>>> general_info.insert(2, 3.1415926)
>>> general_info.insert(3, False)
>>> general_info.insert(4, 1)
>>> general_info
['Важные математические константы', 1j, 3.1415926, False, 1]
Как обратиться к элементам списка Python?
Есть три способа:
- Оператор индекса
- Оператор среза
- Итерирование
Оператор индекса
Индекс используется для доступа к отдельному элементу.
>>> todo_list[2]
'Дорога до работы'
>>> general_info[1]
1j
Оператор среза
Срез применяется для обращения к нескольким элементам списка. Синтаксис: list_name[start:stop:step], где
- start – индекс, с которого начинается срез (по умолчанию начало списка)
- stop – индекс, до которого осуществляется срез (по умолчанию конец списка)
- step – шаг приращения, по умолчанию равно 1
>>> general_info[:2] # срез с начала до 2 индекса, не включая
['Важные математические константы', 1j]
>>> general_info[2:4] # срез с индекса 2 по 3
[3.1415926, False]
>>> general_info[::2] # чётные индексы
['Важные математические константы', 3.1415926, 1]
Обратите внимание: если указан индекс stop, то срез осуществляется вплоть до него, но исключая сам элемент.
Итерирование
Списки Python – итерируемые объекты. Для перебора элементов списка не нужен счетчик:
>>> for item in todo_list:
... print(item)
...
Завтрак, зарядка, душ
Чтение статей на proglib
Дорога до работы
Как удалить элемент из списка?
Всего два метода:
- remove()
- pop()
Удаление элемента методом remove()
remove() находит и удаляет элемент из списка:
>>> general_info.remove(False)
>>> general_info
['Важные математические константы', 1j, 3.1415926, 1]
Удаление элемента методом pop()
pop() удаляет и возвращает элемент, по умолчанию последний:
>>> general_info.pop()
1
>>> general_info.pop()
3.1415926
>>> general_info
['Важные математические константы', 1j]
О методах поподробнее
Посмотреть аттрибуты и функции объекта списка, как и других объектов Python, можно передав список функции dir(). Вот сокращенный вид выводимого функцией списка:
>>> dir(todo_list)
[... 'append', 'clear', 'copy', 'count', 'extend', 'index',
'insert', 'pop', 'remove', 'reverse', 'sort']
Ничего сложного, правда? :)
Обобщим и дополним примеры использования методов списков:
- a.append(e) – добавляет переданную переменную e в конец списка a
- a.clear() – удаляет все элементы из списка a
- a.copy() – возвращает копию списка a
- a.count(e) – возвращает число столько раз, сколько элемент e встречается в списке a
- a.extend(b) – добавляет все элементы списка b в конец списка a
- a.index(e) – находит и возвращает индекс первого элемента списка a, равного e
- a.insert(i, e) – вставляет элемент e на позицию с индексом i
- a.pop(i) – возвращает и удаляет элемент с индексом i (по умолчанию последний)
- a.remove(e) – удаляет элемент e из списка a
- a.reverse() – разворачивает в обратном порядке элементы списка a
- a.sort() – сортирует элементы списка a в восходящем порядке
Когда использовать списки Python?
Используйте списки Python, если от структуры данных нужно следующее:
- Хранить объекты данных нескольких типов.
- Сохранять очередность элементов и порядок вставки.
- Хранить повторяющиеся значения.
- Изменять элементы.
Комментарии