В этом модуле мы погружаемся в тему Вложенных списков (матриц). Вы узнаете, как создавать списки внутри списков, как обращаться к элементам, используя двойную индексацию, и как перебирать такие структуры с помощью вложенных циклов.
Вложенные списки широко используются для представления табличных данных, игровых полей (например, шахмат или крестиков-ноликов) и математических матриц. Будьте внимательны с индексами: первый индекс обычно отвечает за строку (внешний список), а второй — за столбец (внутренний список).
Вам предстоит выполнить ряд заданий: от простого получения данных до написания алгоритмов обхода матрицы.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 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: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Индексация во вложенных списках
Вложенные списки работают как таблицы: строки и столбцы. Посмотрите на код и определите, какое число будет выведено на экран. Помните, что нумерация индексов в Python начинается с нуля.
matrix = [
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
print(matrix[1][2])Изменение элемента матрицы
У нас есть игровое поле 3x3, заполненное нулями. Нам нужно поставить "X" в самый центр поля. Заполните пропуски правильными индексами для обращения к центральному элементу.
board = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
# Ставим крестик в центр
board[input1S][input2S] = "X"
print(board)Типы списков
В Python список может содержать любые типы данных, включая другие списки. Распределите примеры кода по категориям: "Одномерный список" (простой) и "Вложенный список" (содержит внутри себя другие списки).
[1, 2, 3, 4][[1, 2], [3, 4]]['a', 'b', 'c'][1, [2, 3], 4][][[]]Ошибка доступа к элементам
Программист, привыкший к другим языкам или библиотекам, допустил ошибку в синтаксисе обращения к элементу вложенного списка. Найдите строку с ошибкой и исправьте её, чтобы вывести число 5.
numbers = [[1, 2, 3], [4, 5, 6]]# Нужно получить число 5val = numbers[1, 1]print(val)Длина вложенного списка
Внимательно проанализируйте код. Что выведет функция len(), примененная к самому списку my_list? Введите одно число.
my_list = [
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]
]
print(len(my_list))Создание матрицы из строк
Соберите код, который создает пустой список, а затем добавляет в него две строки (два вложенных списка), формируя матрицу 2x2. Строка с ошибкой (лишняя) не должна попасть в решение.
matrix = []matrix.append([1, 2])matrix.append([3, 4])print(matrix[1][0])matrix.add([1, 2])Сумма всех элементов матрицы
Восстановите правильный порядок строк кода для вычисления суммы всех чисел во вложенном списке data.
data = [[1, 2], [3, 4]]total_sum = 0for row in data: for num in row: total_sum += numprint(total_sum)Генерация списка списков
Часто нужно создать матрицу заданного размера, заполненную нулями. Заполните пропуски, чтобы создать список из 3 списков, в каждом из которых по 2 нуля, используя умножение списков.
rows = 3
cols = 2
# Создаем матрицу 3x2
matrix = [[0] * input1S for _ in range(input2S)]
print(matrix)