Работа со списками в Python — это основополагающий навык, который понадобится тебе на протяжении всего изучения языка. Списки в Python — это изменяемые последовательности элементов, которые могут содержать элементы любого типа. Давай рассмотрим основные операции со списками.
Что такое списки?
Списки в Python — это упорядоченные коллекции элементов, которые могут быть разных типов (числа, строки, другие списки и т.д.). Они заключены в квадратные скобки [ ] и элементы разделяются запятыми.
Создание списка
Список можно создать с помощью квадратных скобок или функции list():
| 1 2 3 4 5 6 7 8 9 10 11 | <code># Пустой список my_list = [] # Списки с элементами my_list = [1, 2, 3, 'a', 'b', 'c'] numbers = [1, 2, 3, 4, 5] strings = ["apple", "banana", "cherry"] mixed = [1, "hello", 3.14, True] # Список из строки my_list = list('hello') # ['h', 'e', 'l', 'l', 'o']</code> |
Доступ к элементам списка
Элементы списка нумеруются с нуля. Элементы списка можно извлекать по их индексам.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <code>fruits = ["apple", "banana", "cherry"] # Получение первого элемента print(fruits[0]) # "apple" # Получение последнего элемента print(fruits[-1]) # "cherry" my_list = [10, 20, 30, 40, 50] # Первый элемент first_element = my_list[0] # 10 # Последний элемент last_element = my_list[-1] # 50 # Срез списка (с 1-го по 3-й элемент, не включая 3-й) sub_list = my_list[1:3] # [20, 30]</code> |
Изменение элементов списка
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <code>fruits = ["apple", "banana", "cherry"] # Изменение второго элемента fruits[1] = "blueberry" print(fruits) # ["apple", "blueberry", "cherry"] my_list = [1, 2, 3, 4, 5] # Изменение элемента по индексу my_list[1] = 20 # [1, 20, 3, 4, 5] # Изменение среза my_list[1:3] = [200, 300] # [1, 200, 300, 4, 5]</code> |
Добавление элементов в список
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <code>fruits = ["apple", "banana", "cherry"] # Добавление элемента в конец списка fruits.append("orange") print(fruits) # ["apple", "banana", "cherry", "orange"] # Вставка элемента в определенную позицию fruits.insert(1, "blueberry") print(fruits) # ["apple", "blueberry", "banana", "cherry", "orange"] my_list = [1, 2, 3] # Добавление одного элемента в конец списка my_list.append(4) # [1, 2, 3, 4] # Добавление нескольких элементов в конец списка my_list.extend([5, 6]) # [1, 2, 3, 4, 5, 6] # Вставка элемента в конкретное место my_list.insert(1, 1.5) # [1, 1.5, 2, 3, 4, 5, 6]</code> |
Удаление элементов из списка
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <code>fruits = ["apple", "banana", "cherry", "orange"] # Удаление элемента по значению fruits.remove("banana") print(fruits) # ["apple", "cherry", "orange"] # Удаление элемента по индексу del fruits[1] print(fruits) # ["apple", "orange"] # Удаление и получение последнего элемента last_fruit = fruits.pop() print(last_fruit) # "orange" print(fruits) # ["apple"] my_list = [1, 2, 3, 4, 5] # Удаление элемента по значению my_list.remove(3) # [1, 2, 4, 5] # Удаление элемента по индексу del my_list[1] # [1, 4, 5] # Удаление и возвращение элемента по индексу popped_element = my_list.pop(1) # my_list: [1, 5], popped_element: 4 # Очистка списка my_list.clear() # []</code> |
Срезы списка
Срезы позволяют получить часть списка.
| 1 2 3 4 5 6 7 8 9 10 | <code>numbers = [1, 2, 3, 4, 5] # Получение первых трех элементов print(numbers[:3]) # [1, 2, 3] # Получение элементов с третьего до конца print(numbers[2:]) # [3, 4, 5] # Получение элементов с третьего по четвертый print(numbers[2:4]) # [3, 4]</code> |
Поиск элементов в списке
| 1 2 3 4 5 6 7 8 | <code>fruits = ["apple", "banana", "cherry"] # Проверка наличия элемента в списке print("banana" in fruits) # True print("orange" in fruits) # False # Получение индекса элемента print(fruits.index("cherry")) # 2</code> |
Перебор элементов списка
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <code>fruits = ["apple", "banana", "cherry"] # Перебор элементов с помощью цикла for for fruit in fruits: print(fruit) my_list = ['a', 'b', 'c', 'd'] # Перебор элементов с помощью цикла for for element in my_list: print(element) # Перебор элементов с индексами for index, element in enumerate(my_list): print(f"Index: {index}, Element: {element}")</code> |
Основные методы списка
- append(x) — добавляет элемент
xв конец списка. - insert(i, x) — вставляет элемент
xна позициюi. - remove(x) — удаляет первый найденный элемент
x. - pop([i]) — удаляет элемент на позиции
iи возвращает его (еслиiне указан, удаляет и возвращает последний элемент). - index(x) — возвращает индекс первого найденного элемента
x. - count(x) — возвращает количество элементов
xв списке. - sort() — сортирует список.
- reverse() — разворачивает список.
- len() — возвращает длину списка
- in — проверяет, есть ли элемент в списке
Другие полезные методы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <code>my_list = [1, 2, 3, 4, 5] # Поиск индекса элемента index_of_three = my_list.index(3) # 2 # Подсчет количества вхождений элемента count_of_twos = my_list.count(2) # 1 # Обратный порядок элементов my_list.reverse() # [5, 4, 3, 2, 1] # Сортировка списка my_list.sort() # [1, 2, 3, 4, 5]</code> |
Генераторы списков
Генераторы списков позволяют создавать новые списки на основе существующих с использованием компактного синтаксиса:
| 1 2 3 4 5 | <code># Создание списка квадратов чисел от 0 до 9 squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # Список четных чисел от 0 до 9 evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]</code> |
Это основные операции со списками в Python. Практикуйтесь с этими примерами, чтобы лучше понять, как работают списки!
