Списки в Python (list), функции и методы списков

Списки в Python (list), функции и методы списков

Автор: Рамис | Статьи 26 июля 2021

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

Как создать список

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

my_list = []
my_list = [1, 2, 3]
my_list = [1, "Hello", 3.4]

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

my_list = ["mouse", [8, 4, 6], ['a']]

Списки можно создавать не только вручную, но и с помощью функции.

my_list = list()

Доступ к элементам списка

Для доступа к элементу в списке можно использовать присвоенный ему индекс. В Python индексы начинаются с 0, и список из 4 элементов будет иметь индекс от 0 до 3.

my_list = [8, 'hello', 'привет', 15.2]
my_list[1] # hello
my_list[2] # привет
my_list[0] # 8

my_list[0] + my_list[3] # 23.2

Попытка получить доступ к несуществующим индексам вызовет ошибку IndexError.

my_list = [8, 'hello', 'привет', 15.2]
my_list[9] 

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
IndexError: list index out of range

Индекс должен быть целым числом. Мы не можем использовать float или другие типы, это приведет к TypeError.

my_list = [8, 'hello', 'привет', 15.2]
my_list[1.2] 

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not float 

Доступ к вложенным спискам осуществляется с помощью вложенной индексации.

my_list = ['test', ['hello', 'привет'], [3, 6, 1]]

my_list[1] # ['hello', 'привет']
my_list[1][0] # hello
my_list[1][1] # привет
my_list[2][2] # 1

Отрицательная индексация

Python можно использовать отрицательную индексацию. Индекс -1 вернет последний элемент списка, -2 к предпоследний и так далее. Отличный способ если вы не знаете длину списка, и хотите получить последний элемент.

my_list = [8, 'hello', 'привет', 15.2]
my_list[-1] # 15.2
my_list[-3] # hello
my_list[-4] # 8

Списки Python

Срезы списка

Мы можем получить доступ к диапазону элементов в списке с помощью срезов : (двоеточие).

Синтаксис срезов: my_list[start:stop:step]

  • start индекс начала среза (индексы могут быть отрицательными)
  • stop индекс конца среза
  • step шаг

Без шага

my_list = [8, 'hello', 'привет', 15.2]
#"
my_list[1:3] # ['hello', 'привет']
my_list[2:4] # ['привет', 15.2]
my_list[:-2] # [8, 'hello']
my_list[2:]  # ['привет', 15.2]
my_list[:]   # [8, 'hello', 'привет', 15.2]

С шагом

my_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
#"
my_list[1:8:2] # ['2', '4', '6', '8']
my_list[::2]   # ['1', '3', '5', '7', '9']

Добавить / изменить элементы списка

Списки изменяемы, мы можем использовать оператор присваивания = для изменения элемента или диапазона элементов.

my_list = [8, 'hello', 'привет', 15.2]
#"
my_list[1] = 'hi'
print(my_list) # [8, 'hi', 'привет', 15.2]
#"
my_list[-1] = 'ramziv'
print(my_list) # [8, 'hi', 'привет', 'ramziv']

Изменения диапазона элементов

my_list = [8, 'hello', 'привет', 15.2]
#"
my_list[1:3] = [1092, 583]  
print(my_list) #[8, 1092, 583, 15.2]

Мы можем добавить один элемент в список с помощью метода append()

my_list = [8, 'hello', 'привет', 15.2]
#"
my_list.append(12)
print(my_list) # [8, 'hello', 'привет', 15.2, 12]
#"
my_list.append('сайт')
print(my_list) # [8, 'hello', 'привет', 15.2, 12, 'сайт']

Или добавить несколько элементов с помощью метода extend()

my_list = [8, 'hello', 'привет', 15.2]

my_list.extend([12, 'сайт', 321])
print(my_list) # [8, 'hello', 'привет', 15.2, 12, 'сайт', 321]

Мы также можем использовать оператор + для объединения двух списков

old = [2, 3, 5]
new = [12, 43, 11]

print(old + new) # [2, 3, 5, 12, 43, 11]

Кроме того, мы можем вставить элемент в желаемое место с помощью метода insert()

my_list = [8, 'hello', 'привет', 15.2]
#"
my_list.insert(1, 'магия')
print(my_list) # [8, 'магия', 'hello', 'привет', 15.2]
#"
my_list.insert(3, 0.1)
print(my_list) # [8, 'магия', 'hello', 0.1, 'привет', 15.2]

Удалить элементы списка

Мы можем удалить один или несколько элементов из списка с помощью ключевого слова del

my_list = [8, 'hello', 'привет', 15.2]
del my_list[3]
print(my_list) # [8, 'hello', 'привет']
#"
my_list = [8, 'hello', 'привет', 15.2]
del my_list[1:3]
print(my_list) # [8, 15.2]

Мы можем использовать метод remove() для удаления элемента, или метод pop() для удаления элемента по индексу.

my_list = [8, 'hello', 'привет', 15.2]
my_list.remove('hello')
print(my_list) # [8, 'привет', 15.2]
#"
my_list = [8, 'hello', 'привет', 15.2]
my_list.pop(-1) # 15.2
print(my_list) # [8, 'hello', 'привет']

Мы также можем использовать метод clear() для очистки списка.

my_list = [8, 'hello', 'привет', 15.2]
my_list.clear()
print(my_list) # []

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

Метод Описание
append() добавляет элемент в конец списка
extend() добавляет в конец списка итерируемую последовательность.
insert() вставляет элемент перед указанным индексом. Сначала передается индекс, затем элемент.
remove() удаляет первый объект из списка, значение которого равно аргументу
pop() удаляет элемент по указанному индексу и возвращает его. Если индекс не указан, то удаляет и возвращает последний элемент
clear() удаляет все элементы из списка
index() возвращает индекс указанного элемента. Если таких элементов несколько, вернет индекс только первого.
count() считает, сколько раз в списке встречается переданный аргумент
sort() сортировка списка на месте (список изменяется, а не возвращается новый)
reverse() переворачивает список на месте
copy() делает поверхностную копию списка

Комментарии

Markdown
Войти