Что такое список (list): создание, индексы, срезы

Что такое список (list): создание, индексы, срезы Списки, словари, кортежи

Привет! До сих пор мы работали с одиночными значениями: числами, строками. Но в реальном мире данные редко бывают одиночными. Часто нам нужно хранить много значений: список имён, список чисел, список товаров.

Именно для этого в Python есть списки (list).

В этой статье мы разберём:

  • Что такое список
  • Как создавать списки
  • Как обращаться к элементам по индексам
  • Как использовать срезы
  • Изменяемость списков

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание переменных

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

Основная часть

Что такое список

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

my_list = [1, 2, 3, 4, 5]
mixed_list = [1, "hello", 3.14, True]
empty_list = []

Важно: Списки в Python изменяемы (mutable). Их можно менять после создания.

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

# Пустой список
empty = []

# Список чисел
numbers = [10, 20, 30, 40, 50]

# Список строк
fruits = ["яблоко", "банан", "вишня"]

# Список из разных типов
mixed = [1, "hello", 3.14, True]

# Список из списков (вложенный)
matrix = [[1, 2], [3, 4], [5, 6]]

Индексы списка

К каждому элементу списка можно обратиться по его номеру — индексу.

Важно: Индексация начинается с 0!

fruits = ["яблоко", "банан", "вишня", "дыня"]

print(fruits[0])   # яблоко
print(fruits[1])   # банан
print(fruits[2])   # вишня
print(fruits[3])   # дыня

Изменение элементов

Так как списки изменяемы, можно менять их элементы.

fruits = ["яблоко", "банан", "вишня"]
fruits[1] = "апельсин"
print(fruits)   # ["яблоко", "апельсин", "вишня"]

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

Отрицательные индексы отсчитываются с конца списка.

fruits = ["яблоко", "банан", "вишня", "дыня"]

print(fruits[-1])   # дыня (последний)
print(fruits[-2])   # вишня
print(fruits[-3])   # банан
print(fruits[-4])   # яблоко

Длина списка (len)

fruits = ["яблоко", "банан", "вишня"]
print(len(fruits))   # 3

Срезы (slicing)

Срезы позволяют получить часть списка.

fruits = ["яблоко", "банан", "вишня", "дыня", "ежевика"]

print(fruits[1:4])   # ["банан", "вишня", "дыня"] (с 1 по 3)
print(fruits[:3])    # ["яблоко", "банан", "вишня"] (с начала до 2)
print(fruits[2:])    # ["вишня", "дыня", "ежевика"] (с 2 до конца)
print(fruits[-3:])   # ["вишня", "дыня", "ежевика"] (с -3 до конца)
print(fruits[::2])   # ["яблоко", "вишня", "ежевика"] (каждый второй)
print(fruits[::-1])  # ["ежевика", "дыня", "вишня", "банан", "яблоко"] (все)

Совет: Срезы создают новый список, не изменяя исходный.

Вложенные списки

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

print(matrix[0])      # [1, 2, 3]
print(matrix[0][1])   # 2
print(matrix[2][2])   # 9

Задачи для закрепления

Задача 1. Создай список из пяти любимых книг.

Задача 2. Выведи первый и последний элемент списка.

Задача 3. Измени второй элемент списка.

Задача 4. Выведи второй и четвёртый элементы списка (через срезы).

Задача 5. Выведи список в обратном порядке (через срезы).

Ответы:

Задача 1.

# Задача 1
books = ["Война и мир", "Мастер и Маргарита", "Преступление и наказание", "Гарри Поттер", "Властелин колец"]

Задача 2.

print(books[0])      # Первый
print(books[-1])     # Последний

Задача 3.

books[1] = "Идиот"
print(books)

Задача 4.

print(books[1:4:2])   # [второй, четвёртый]

Задача 5.

print(books[::-1])    # Обратный порядок

Нюансы и подводные камни

Ошибка при выходе за границы

fruits = ["яблоко", "банан"]
# print(fruits[5])   # IndexError: list index out of range

Срезы не меняют исходный список

fruits = ["яблоко", "банан", "вишня"]
sub_list = fruits[1:3]
print(sub_list)      # ["банан", "вишня"]
print(fruits)        # ["яблоко", "банан", "вишня"]

Пустой срез

fruits = ["яблоко", "банан", "вишня"]
print(fruits[3:5])   # [] (пустой список)

Частые ошибки и как их избежать

Ошибка 1: Индекс вне границ

Используй len() для проверки длины списка.

Ошибка 2: Путаница между списком и строкой

Строки неизменяемы, списки — изменяемы.

Ошибка 3: Неправильный срез

Срез [start:stop] включает start, но не включает stop.

print(fruits[1:3])   # 1 и 2 элементы

Шпаргалка

Что нужноКак пишется
Создать списокmy_list = [1, 2, 3]
Пустой списокempty = []
Доступ по индексуmy_list[0]
Последний элементmy_list[-1]
Длина спискаlen(my_list)
Срезmy_list[1:3]
Срез с шагомmy_list[::2]
Обратный порядокmy_list[::-1]

Заключение / Выводы

Сегодня мы узнали:

  • Что такое списки и зачем они нужны
  • Как обращаться к элементам по индексам
  • Как использовать срезы
  • Отрицательные индексы

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×