Дата обновления: 27 Февраля 2024
17.07.2023
1786
11.5 мин
author-avatar
Анна Уженкова

Всё о списках в Python: создание, функции и основные операции

В языках программирования есть классы, объекты, числа и массивы — различные элементы с динамичностью или без неё. В Python нет ограничений по типу элементов множества, по размеру. А списки помогают хранить коллекции объектов и являются динамическими и изменяемыми — их счёт обычно начинается с 0. Мы решили рассказать, что такое список в Python, основных способах создания списков, оптимальной длине и основных операциях, которые в разы расширяют функционал. 

Содержание

Что такое список в языке Python, для чего он нужен

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

Списки являются одной из четырёх структур данных, необходимых для работы с итерируемыми объектами. Первый этап в работе с ними — это создание.

На онлайн-курсе «Разработчик Python» от Mathshub вы за 7 месяцев научитесь уверенно программировать и гарантированно получи работу за рубежом. 

Рука с ноутбуком

Как создать новый список в Python

Объявление или создание списка — то, с чего нужно начинать изучение и практику в работе с ним. Для создания списка в Python есть несколько способов. Вы можете использовать литерал:

elements = [ ]

type(elements)

<class ‘list’>

print(elements)

[ ]

Или же функцию list( ). Она помогает составить пустой список или же приводит к списку итерируемый объект:

elements = list()

type(elements)

<class ‘list’>

 print(elements)

[]

Главное, что стоит запомнить, — для списков в Python используют квадратные скобки — [ ], внутри которых размещают различные по типу объекты. Например, [1,4,6,8]. Кстати, списки со скобками могут хранить в себе вложенные данные.

a = [3, 4 [5,6]]

print(a)

 [3, 4 [5, 6]]

Python-разработчики работают в разных областях — маркетинге, анализе данных, автоматизации бизнеса и рекламе. Для старта в профессии стоит обратить внимание на онлайн-курсы. Собрали самые лучшие варианты обучения по программированию с сайта tutortop:

Кстати, знание Python может помочь стать и разработчиком компьютерных игр. Подробнее об этой профессии — в статье из нашего блога.

Операции со списками в Python

Списки позволяют выполнять довольно большое количество операций. Если вы новичок, не старайтесь запомнить все сразу — просто практикуйтесь и используйте их для выполнения задач.

Обращение к элементу

В списках хранится множество элементов и данных. Для доступа к элементам указывают порядковый номер или индекс. Первый элемент будет иметь индекс 0, второй — 1, а третий — 2, и так далее. Допустим, вам нужно вызвать третий элемент в записи. На практике это будет выглядеть так:

elements = [4, 17, 9, ‘flow’]

elements[3]

‘flow’

Существует также отрицательный индекс. Его удобно использовать в тех случаях, когда нужно обратиться к последнему элементу в списке, не считая его слишком долго. Любой конечный элемент будет иметь порядковый номер, который равен -1. Отрицательные индексы нумеруются по-другому — справа налево (то есть индекс первого элемента в списке с четырьмя составляющими будет равен -4, а отрицательный индекс последнего в списке -1).

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

Вы можете удалить, добавить или изменить объекты. При добавлении используйте встроенную в программу функцию append():

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

elements.append(6)

print(elements)

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

Есть ещё один вариант — insert(), который принимает два аргумента — индекс и значение. Но здесь происходит не добавление, а смещение следующей переменной для вывода на выбранной позиции:

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

elements.insert(1,43)

print(elements)

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

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

Для удаления подходит функция del():

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

del elements [2]

print(elements)

[1, 2, 4, 5]

Есть и другой способ — remove( ):

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

elements.remove(2)

print(elements)

[1, 2, 4, 5]

Девушка пишет код за столом с нотубуком и компьютером

Изменение

Вам надо выбрать элемент по индексу и присвоить ему новое значение. Это хороший варианты и для замены различных элементов строк и больших составляющих списков:

elements = [1, 3, 6]

elements[2] = 8

print(elements)

[1, 3, 8]

Проверка на вхождение

Если нужно проверить, действительно ли объект есть в списке, используйте оператор in и элемент if:

elements = [1,14,17,5,6,19,20]

if ’14’ in elements:

print(‘true’)

true

Объединение

Попробуйте объединить списки с помощью оператора + и вывести результат:

a = [1, 3, 5]

b = [1, 2, 4, 6]

print(a + b)

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

Или метода extend():

elements = [1, 2]

elements1 = [3, 4]

elements2 = [5]

elements.extend(elements1)

print(elements)

[1, 2, 3, 4]

elements.extend(elements2)

print(elements)

[1, 2, 3, 4, 5]

Копирование 

Используйте команду copy():

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

elements_copy = elements.copy()

print(elements)

[1, 2, 3, 4, 5]

print(elements_copy)

[1, 2, 3, 4, 5]

Цикл по списку

Чтобы перебрать списки в Python и получить результат, нужны модули for и while:

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

 for item in elements:

 print(item)

1

2

3

4

5

Цикл while выполняется без ошибки, когда есть определённое условие переменной:

elements = [1, 2, 3, 4]

elements_len = len(elements)

i = 0

while i < elements_len:

print(elements[i])

i += 1

1

2

3

4

Чаще используют именно команду for — она компактнее и проще, чем while.

Срезы (slices)

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

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

Или так — elements [START:STOP:STEP]

Мы берём срез от номера start (включительно) до stop (не захватывая), step здесь — это шаг. На начальном этапе start и stop равны 0, а step равен 1.

elements = [1, 5, 4, 8]

print (elements[0:2])

[1, 5]

Или такой пример с индекса 1 и до последнего элемента:

print(elements[1:])

[5, 4, 8]

Длина списка

Узнать длину списка можно, посчитав количество элементов. Но что делать, когда их очень много и вы работаете над сложным проектом с большим объёмом материалов? На помощь приходит функция len() — она помогает получить одномерную длину списка. Функция работает и с другими структурами, которые схожими со списками — например, со строками или словарями. Это встроенная функция, а не метод списка. О других подобных функциях мы расскажем ниже. А пока изучите пример того, как работать с len():

names = [‘Anna’, ‘Irina’, ‘Olga’,]
print(len(names))

>>> 3

Человек пишет код на ноутбуке

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

Они также упрощают работу со списками — в стандартной библиотеке Python уже давно существует набор популярных методов для списков. Вот главные из них.

append() — метод append добавляет новый элемент в конец списка:

elements = [1, 2, 3, 4]

elements.append(5)

[1, 2, 3, 4, 5]

extend() — добавляет набор элементов в конец списка:

elements = [1, 2, 3, 4]

elements.extend ([2, 9])

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

index () — возвращает индекс первого вхождения значения, Python ищет совпадения слева направо:

elements = [1, 10, 3, 18, 4, 6, 11, 23]

print(elements.index(10))

1: первая найденная единица на позиции 1

count() — метод считает, сколько раз за строку значение упоминается в списке задачи:

elements = [1, 10, 3, 18, 4, 6, 11, 23]

print(elements.count(3))

1: единица встречается один раз

copy() — возвращает пустую копию списка:

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

print = elements.copy()

elements

insert () — вставляет указанный элемент перед выбранным индексом:

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

elements.insert (2, [2,3])

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

remove() — метод удаляет первое вхождение выбранного элемента:

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

elements.remove (2)

# [1, 2, 4, 5]

reverse() — переворачивает список задом наперёд:

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

elements.reserve()

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

count() — знает, сколько раз значение повторяется в списке:

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

print(elements.count(1)) 

# 1 — цифра встречается в списке один раз

sort() — сортирует список в различном порядке от меньшего к большему:

elements = [1, 5, 4, 11]

elements.sort()

#[1, 4, 5, 11]

pop() — удаляет и возвращает значение по индексу, если не указать индекс , метод по умолчанию уберёт последний элемент:

elements = [1, 2, 7, 6]

elements.pop(1)

# 2

# [1, 7, 6] 

Встроенные функции в списках Python

Помимо уже описанной выше встроенной функции len() есть и другие. Их также удобно использовать при редактировании или написании кода.

max() — легко возвращать и получать элемент с максимальным значением:

number = [1, 4, 3, 8, 5, 2, 3, 2, 1]

max_value = max(number)

print(max_value)

#8

min() — возвращает элемент с минимальным значением:

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

min_value = min(number)

print(min_value)

1

list() — приведение к единому типу:

forms = (5, 6)

lst2 = list (forms)

print(lst2)

[5, 6]

sorted() — делает сортировку в списке:

number = [14, 1, 7, 2]

sorted(number) # [1, 2, 7, 14]

Парень сидит за столом и программирует на компьютере

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

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

numbers = [i for i in range(1, 15)]

>>> print(numbers)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

Существуют и более сложные конструкции генератора списков range — в них включают все возможные наборы сочетаний букв из введённых слов и длинную последовательность цифр. 

Что стоит запомнить о списках в Python

  • Списками называют непрерывные динамические коллекции элементов, у каждого из которых есть свой индекс.
  • Создавать список можно с помощью list(), генератора списков или срезов.
  • Чаще всего работают с такими операциями, как индексирование, добавление и удаление элементов, объединение, копирование.
  • Для редактирования элементов существуют специальные встроенные функции — например, min(), max(), list().
  • Полностью разобраться в функциях и операциях можно только на практике. Поэтому учить наизусть всё описанное просто нет смысла. Вам нужно постепенно внедрять необходимые элементы в работу и писать больше кода. Даже те разработчики, которые имеют внушительный опыт, пользуются документацией для поиска необходимых функций при работе с программами. Это совершенно нормально, не бойтесь сделать ошибку.
Хочу стать Python-разработчиком!
Специально для вас мы собрали отдельную подборку лучших онлайн-курсов по Python на рынке и сравнили их по цене, продолжительности и отзывам студентов.
Посмотреть подборку