Списки в Python: Полное руководство по созданию, методам и операциям
Последовательности и списки
Базовая структура данных в Python — последовательность (sequence). Каждому элементу присваивается номер — позиция или индекс. Первый индекс — 0, второй — 1 и так далее.
В Python шесть встроенных типов последовательностей, но наиболее распространены списки (lists) и кортежи (tuples).
Все последовательности поддерживают: индексацию, срезы, сложение, умножение, проверку принадлежности. Встроенные функции: длина (len), максимум (max), минимум (min).
Списки в Python
Список — самый универсальный тип данных. Записывается как значения, разделённые запятыми, в квадратных скобках. Важно: элементы списка могут быть разных типов.
Создание списка — просто перечисление значений в квадратных скобках:
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5] list3 = ["a", "b", "c", "d"]
Как и со строками, индексы начинаются с 0, списки можно срезать, конкатенировать и т.д.
Доступ к значениям в списках
Для доступа используются квадратные скобки со срезами и индексами:
Live Demo#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]
Результат:
list1[0]: physics list2[1:5]: [2, 3, 4, 5]
Обновление списков
Можно обновить один или несколько элементов, задав срез слева от оператора присваивания. Метод append() добавляет элемент в конец.
Live Demo#!/usr/bin/python list = ['physics', 'chemistry', 1997, 2000] print "Value available at index 2 : " print list[2] list[2] = 2001 print "New value available at index 2 : " print list[2]
Примечание: append() описан ниже.
Результат:
Value available at index 2 : 1997 New value available at index 2 : 2001
Удаление элементов списка
Для удаления используйте del, если знаете точный индекс, или метод remove(), если нет.
Live Demo#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] print list1 del list1[2] print "After deleting value at index 2 : " print list1
Результат:
['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]
Примечание: remove() описан ниже.
Основные операции со списками
Списки реагируют на + и * как строки: конкатенация и повторение, но результат — новый список, не строка. Поддерживают все общие операции последовательностей.
| Выражение Python | Результат | Описание |
|---|---|---|
| len([1, 2, 3]) | 3 | Длина |
| [1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | Конкатенация |
| ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | Повторение |
| 3 in [1, 2, 3] | True | Принадлежность |
| for x in [1, 2, 3]: print x, | 1 2 3 | Итерация |
Индексация, срезы и матрицы
Поскольку списки — последовательности, индексация и срезы работают как для строк.
Дано: L = ['spam', 'Spam', 'SPAM!']
| Выражение | Результат | Описание |
|---|---|---|
| L[2] | SPAM! | Смещение начинается с нуля |
| L[-2] | Spam | Отрицательный: отсчёт с конца |
| L[1:] | ['Spam', 'SPAM!'] | Срез извлекает секции |
Встроенные функции и методы списков
Функции:
| № | Функция и описание |
|---|---|
| 1 | cmp(list1, list2) — сравнивает элементы обоих списков |
| 2 | len(list) — общая длина списка |
| 3 | max(list) — элемент с максимальным значением |
| 4 | min(list) — элемент с минимальным значением |
| 5 | list(seq) — преобразует кортеж в список |
Методы:
| № | Метод и описание |
|---|---|
| 1 | list.append(obj) — добавляет объект obj в конец списка |
| 2 | list.count(obj) — количество вхождений obj в списке |
| 3 | list.extend(seq) — добавляет содержимое seq в список |
| 4 | list.index(obj) — наименьший индекс, где встречается obj |
| 5 | list.insert(index, obj) — вставляет obj в позицию index |
| 6 | list.pop(obj=list[-1]) — удаляет и возвращает последний элемент или obj |
| 7 | list.remove(obj) — удаляет первое вхождение obj |
| 8 | list.reverse() — переворачивает список на месте |
| 9 | list.sort([func]) — сортирует список, использует func для сравнения если задан |
Python
- Освоение типов данных в Python: практическое руководство
- Мастерство операторов Python: Полное руководство
- Оператор pass в Python: практическое руководство
- Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
- Освоение функции range() в Python: от основ к продвинутым сценариям
- Мастерство работы со списками Python: append, sort, len и list comprehensions — практическое руководство
- Вычисление среднего значения в Python: практическое руководство
- Python list.count(): экспертное руководство с практическими примерами
- Как удалить дубликаты из списка Python: 8 проверенных способов
- Как удалять элементы из списка Python: remove(), pop(), clear() и del