Списки

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

Создание списка

Список в Python создается с помощью квадратных скобок []. Элементы списка разделяются запятыми.

Пример создания списка:
# Пример создания списка my_list = [1, 2, 3, 4, 5] print(my_list) # Вывод: [1, 2, 3, 4, 5]

Список может содержать элементы разных типов:

mixed_list = [1, "Hello", 3.14, True] print(mixed_list) # Вывод: [1, 'Hello', 3.14, True]

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

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

Пример:
my_list = [10, 20, 30, 40, 50] print(my_list[0]) # Вывод: 10 print(my_list[2]) # Вывод: 30

Также можно использовать отрицательные индексы для доступа к элементам с конца списка:

my_list = [10, 20, 30, 40, 50] print(my_list[-1]) # Вывод: 50 (последний элемент) print(my_list[-2]) # Вывод: 40 (предпоследний элемент)

Изменение элементов списка

Поскольку списки являются изменяемыми, вы можете изменять их элементы, обращаясь к ним по индексу.

Пример:
my_list = [1, 2, 3, 4, 5] my_list[2] = 99 print(my_list) # Вывод: [1, 2, 99, 4, 5]

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

Вы можете добавлять элементы в список с помощью метода append(), который добавляет элемент в конец списка.

Пример:
my_list = [1, 2, 3] my_list.append(4) print(my_list) # Вывод: [1, 2, 3, 4]

Также можно использовать метод insert() для добавления элемента на определенную позицию:

my_list.insert(1, 10) # Вставляем 10 на позицию с индексом 1 print(my_list) # Вывод: [1, 10, 2, 3, 4]]

Удаление элементов из списка

Для удаления элементов из списка можно использовать несколько методов:

  • remove() — удаляет первый элемент с указанным значением.
  • pop() — удаляет элемент по индексу (по умолчанию последний) и возвращает его.
  • del — удаляет элемент по индексу.
Примеры:
my_list = [1, 2, 3, 4, 5] my_list.remove(3) # Удаляет элемент со значением 3 print(my_list) # Вывод: [1, 2, 4, 5] popped_element = my_list.pop(1) # Удаляет элемент с индексом 1 (значение 2) print(popped_element) # Вывод: 2 print(my_list) # Вывод: [1, 4, 5] del my_list[0] # Удаляет элемент с индексом 0 print(my_list) # Вывод: [4, 5]

Срезы списка

Срезы позволяют получить подсписок из списка. Синтаксис среза: list[start:stop:step].

Примеры:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(my_list[2:5]) # Вывод: [2, 3, 4] (элементы с индексами 2, 3, 4) print(my_list[:4]) # Вывод: [0, 1, 2, 3] (элементы с начала до индекса 4) print(my_list[6:]) # Вывод: [6, 7, 8, 9] (элементы с индекса 6 до конца) print(my_list[::2]) # Вывод: [0, 2, 4, 6, 8] (каждый второй элемент)

Основные методы списков

  • len() — возвращает количество элементов в списке.
  • index() — возвращает индекс первого элемента с указанным значением.
  • count() — возвращает количество элементов с указанным значением.
  • sort() — сортирует список (по умолчанию по возрастанию).
  • reverse() — разворачивает список.
Примеры:
my_list = [5, 3, 8, 1, 9] print(len(my_list)) # Вывод: 5 print(my_list.index(8)) # Вывод: 2 print(my_list.count(5)) # Вывод: 1 my_list.sort() print(my_list) # Вывод: [1, 3, 5, 8, 9] my_list.reverse() print(my_list) # Вывод: [9, 8, 5, 3, 1]

Итерация по списку

Вы можете перебирать элементы списка с помощью цикла for.

Пример:
my_list = [1, 2, 3, 4, 5] for item in my_list: print(item)

Генерация списков (List Comprehension)

List Comprehension — это удобный способ создания списков на основе существующих списков.

Пример:
# Пример: создание списка квадратов чисел от 1 до 5 squares = [x**2 for x in range(1, 6)] print(squares) # Вывод: [1, 4, 9, 16, 25]

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


Примеры решения задач

Задача: Создайте список из 10 чисел и найдите сумму всех элементов.

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

Нахождение суммы с использованием цикла for:
# Создание списка из 10 чисел numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Нахождение суммы с использованием цикла for total_sum = 0 # Инициализация переменной для суммы for number in numbers: total_sum += number # Добавляем текущий элемент к сумме # Вывод результата print("Сумма всех элементов списка:", total_sum)
Объяснение
  • Мы проходим по каждому элементу списка numbers.
  • На каждой итерации добавляем текущий элемент к переменной total_sum.
Нахождение суммы с использованием цикла while:
# Создание списка из 10 чисел numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Нахождение суммы с использованием цикла while total_sum = 0 # Инициализация переменной для суммы index = 0 # Индекс для прохода по списку while index < len(numbers): total_sum += numbers[index] # Добавляем текущий элемент к сумме index += 1 # Переходим к следующему элементу # Вывод результата print("Сумма всех элементов списка:", total_sum)
Объяснение
  • Мы используем индекс для доступа к элементам списка.
  • На каждой итерации добавляем элемент с текущим индексом к total_sum и увеличиваем индекс на 1.
Нахождение суммы с использованием встроенной функции sum():
# Создание списка из 10 чисел numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Нахождение суммы всех элементов списка total_sum = sum(numbers) # Вывод результата print("Сумма всех элементов списка:", total_sum)
Объяснение
  • Мы создали список numbers, содержащий числа от 1 до 10.
  • Функция sum() прошлась по всем элементам списка и сложила их.
  • Результат суммы был выведен на экран.

Задача: Напишите программу, которая удаляет все дубликаты из списка с сохранением порядка.

Решение:
# Создание списка с дубликатами my_list = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7] # Удаление дубликатов с сохранением порядка unique_list = [] for item in my_list: if item not in unique_list: unique_list.append(item) # Вывод результата print("Список без дубликатов с сохранением порядка:", unique_list)
Альтернативное решение с использованием dict.fromkeys() (Python 3.7+)

Начиная с Python 3.7, словари сохраняют порядок вставки ключей. Мы можем использовать это свойство для удаления дубликатов с сохранением порядка.

# Создание списка с дубликатами my_list = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7] # Удаление дубликатов с помощью dict.fromkeys() unique_list = list(dict.fromkeys(my_list)) # Вывод результата print("Список без дубликатов с сохранением порядка:", unique_list)

Больше задач для практики вы найдёте в задачнике.


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться