Списки в 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
Срезы списка
Мы можем получить доступ к диапазону элементов в списке с помощью срезов :
(двоеточие).
Синтаксис срезов: 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() | делает поверхностную копию списка |