Списки в Python используются для одновременного хранения множества данных. Список создается путем размещения элементов внутри квадратных скобок []
, разделенных запятыми. Список может содержать любое количество элементов, и они могут быть разных типов (int, float, string и др.).
Создание списка в Python
Список создается путем размещения элементов внутри []
, разделенных запятыми. Например:
1 2 3 4 5 6 |
# Список из 3 целых чисел numbers = [1, 2, 5] print(numbers) # Результат: [1, 2, 5] |
Здесь мы создали список с именем numbers
, содержащий 3 целочисленных элемента.
Список может содержать любое количество элементов, и они могут быть разных типов (int, float, string и т.д.). Например:
1 2 3 4 5 |
# Пустой список my_list = [] # Список со смешанными типами данных my_list = [1, "Hello", 3.4] |
Доступ к элементам списка в Python
В Python каждый элемент списка ассоциируется с индексом. Мы можем получить доступ к элементам массива, используя номер индекса (0, 1, 2,…). Например:
1 2 3 4 5 6 7 |
languages = ["Python", "Swift", "C++"] # Получаем доступ к элементу под индексом 0 print(languages[0]) # выведет Python # Получаем доступ к элементу под индексом 2 print(languages[2]) # выведет C++ |
Здесь мы видим, что каждый элемент списка связан с номером индекса. И мы использовали индекс для доступа к элементам.
Примечание: Отсчет элементов в списке всегда начинается с индекса 0. Отсюда следует, что первый элемент списка находится под индексом 0, а не 1.
Отрицательная индексация в Python
Python позволяет использовать отрицательный индекс для своих последовательностей. Индекс -1 относится к последнему элементу, -2 относится к предпоследнему элементу и так далее. Например:
1 2 3 4 5 6 7 |
languages = ["Python", "Swift", "C++"] # Получаем доступ к элементу под индексом 0 print(languages[-1]) # выведет C++ # Получаем доступ к элементу под индексом 2 print(languages[-3]) # выведет Python |
Детально:
Примечание: Если указанный индекс не существует в списке, то Python выдаст ошибку IndexError
.
Срез списка в Python
В Python с помощью оператора среза :
можно получить доступ сразу к группе элементов (а не только к одному). Например:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Срез списка в Python my_list = ['p','r','o','g','r','a','m','i','z'] # Выводим "срезанные" элементы со 2 по 4 индекс print(my_list[2:4]) # Выводим "срезанные" элементы от индекса 5 и до конца списка print(my_list[5:]) # Выводим все элементы списка print(my_list[:]) |
Результат:
['o', 'g']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']
Примечание: При выполнении среза в списках, первый индекс является включающим, а конечный — исключающим.
Добавление элементов в список в Python
В Python есть сразу несколько методов для добавления элементов в список.
1. Использование метода append()
Метод append() добавляет элемент в конец списка. Например:
1 2 3 4 5 6 7 8 |
numbers = [21, 34, 54, 12] print("Before Append:", numbers) # Использование метода append() numbers.append(32) print("After Append:", numbers) |
Результат:
Before Append: [21, 34, 54, 12]
After Append: [21, 34, 54, 12, 32]
Мы создали список с именем numbers
. Обратите внимание на строку:
1 |
numbers.append(32) |
Здесь функция append() добавляет 32 в конец массива.
2. Использование метода extend()
Метод extend() используется для добавления всех элементов одного списка в другой. Например:
1 2 3 4 5 6 7 8 9 10 |
prime_numbers = [2, 3, 5] print("List1:", prime_numbers) even_numbers = [4, 6, 8] print("List2:", even_numbers) # Объединение двух списков prime_numbers.extend(even_numbers) print("List after append:", prime_numbers) |
Результат:
List1: [2, 3, 5]
List2: [4, 6, 8]
List after append: [2, 3, 5, 4, 6, 8]
У нас есть два списка с именами prime_numbers
и even_numbers
. Обратите внимание на стейтмент:
1 |
prime_numbers.extend(even_numbers) |
Здесь мы добавили все элементы even_numbers
к prime_numbers
.
Изменения значений элементов списка
Списки в Python являются изменяемыми. Это означает, что мы можем изменять элементы списка, присваивая им новые значения с помощью оператора =
. Например:
1 2 3 4 5 6 |
languages = ['Python', 'Swift', 'C++'] # Изменяем значение третьего элемента на 'C' languages[2] = 'C' print(languages) |
Результат:
Удаление элементов из списка
1. Использование оператора del
В Python мы можем использовать оператор del
для удаления одного или нескольких элементов из списка. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
languages = ['Python', 'Swift', 'C++', 'C', 'Java', 'Rust', 'R'] # Удаляем второй элемент из списка del languages[1] print(languages) # Удаляем последний элемент из списка del languages[-1] print(languages) # Удаляем первые два элемента из списка del languages[0 : 2] print(languages) |
Результат:
['Python', 'C++', 'C', 'Java', 'Rust', 'R']
['Python', 'C++', 'C', 'Java', 'Rust']
['C', 'Java', 'Rust']
2. Использование метода remove()
Мы также можем использовать метод remove() для удаления элементов из списка. Например:
1 2 3 4 5 6 |
languages = ['Python', 'Swift', 'C++', 'C', 'Java', 'Rust', 'R'] # Удаляем 'Python' из списка languages.remove('Python') print(languages) |
Результат:
['Swift', 'C++', 'C', 'Java', 'Rust', 'R']
Методы для работы со списками в Python
Рассмотрим наиболее часто используемые методы для работы со списками в Python.
Метод | Описание |
append() | Добавляет элемент в конец списка. |
extend() | Добавляет элементы из списка в конец другого списка. |
insert() | Вставляет элемент по указанному индексу. |
remove() | Удаляет элемент по указанному индексу. |
pop() | Возвращает и удаляет элемент, присутствующий по указанному индексу. |
clear() | Удаляет все элементы из списка. |
index() | Возвращает индекс указанного элемента. |
count() | Возвращает количество указанных элементов в списке. |
sort() | Сортирует список в порядке возрастания/убывания. |
reverse() | Возвращает список в обратном порядке («разворачивает» последовательность). |
copy() | Возвращает *поверхностную копию списка. |
*Примечание: Поверхностная копия создает новый составной объект, и затем (по мере возможности) вставляет в него ссылки на объекты, находящиеся в оригинале. Глубокая копия создает новый составной объект, и затем рекурсивно вставляет в него копии объектов, находящихся в оригинале.
Итерация по списку в Python
Мы можем использовать цикл for для перебора элементов списка. Например:
1 2 3 4 5 |
languages = ['Python', 'Swift', 'C++'] # Итерация по списку for language in languages: print(language) |
Результат:
Проверка наличия элемента в списке
Ключевое слово in
используется для проверки того, существует ли элемент в списке или нет. Например:
1 2 3 4 |
languages = ['Python', 'Swift', 'C++'] print('C' in languages) print('Python' in languages) |
Результат:
False
True
Здесь:
'C'
— отсутствует в списке languages
, поэтому результатом является False
.
'Python'
— присутствует в списке languages
, поэтому результатом является True
.
Длина списка в Python
Функция len() используется для определения количества элементов в списке. Например:
1 2 3 4 5 |
languages = ['Python', 'Swift', 'C++'] print("List: ", languages) print("Total Elements: ", len(languages)) |
Результат:
List: ['Python', 'Swift', 'C++']
Total Elements: 3
Абстракция списков в Python
Абстракция списков (List Comprehension) — это лаконичный и элегантный способ создания списков. Абстракция списков состоит из выражения, за которым следует оператор for в квадратных скобках.
Вот пример создания списка, в котором каждый элемент возводится в степень 2:
1 2 3 |
numbers = [number*number for number in range(1, 6)] print(numbers) |
Результат:
[1, 4, 9, 16, 25]
Обратите внимание на часть:
1 |
[number*x for x in range(1, 6)] |
Строка выше равнозначна коду ниже:
1 2 3 4 |
numbers = [] for x in range(1, 6): numbers.append(x * x) |