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

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

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

Вложенные списки широко используются для представления табличных данных, игровых полей (например, шахмат или крестиков-ноликов) и математических матриц. Будьте внимательны с индексами: первый индекс обычно отвечает за строку (внешний список), а второй — за столбец (внутренний список).

Вам предстоит выполнить ряд заданий: от простого получения данных до написания алгоритмов обхода матрицы.

Список тем

Индексация во вложенных списках

id: 40010_task_nested_1

Вложенные списки работают как таблицы: строки и столбцы. Посмотрите на код и определите, какое число будет выведено на экран. Помните, что нумерация индексов в Python начинается с нуля.

Выберите правильный вариант ответа
matrix = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
]

print(matrix[1][2])
Сообщения
Проверить
Показать подсказку

Изменение элемента матрицы

id: 40010_task_nested_2

У нас есть игровое поле 3x3, заполненное нулями. Нам нужно поставить "X" в самый центр поля. Заполните пропуски правильными индексами для обращения к центральному элементу.

Заполните пропуски
board = [
    [0, 0, 0],
    [0, 0, 0],
    [0, 0, 0]
]

# Ставим крестик в центр
board[input1S][input2S] = "X"

print(board)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Типы списков

id: 40010_task_nested_3

В Python список может содержать любые типы данных, включая другие списки. Распределите примеры кода по категориям: "Одномерный список" (простой) и "Вложенный список" (содержит внутри себя другие списки).

Перетяните элементы в соответствующие блоки
Одномерный список
Вложенный список
[1, 2, 3, 4]
[[1, 2], [3, 4]]
['a', 'b', 'c']
[1, [2, 3], 4]
[]
[[]]
Сообщения
Проверить
Показать подсказку

Ошибка доступа к элементам

id: 40010_task_nested_4

Программист, привыкший к другим языкам или библиотекам, допустил ошибку в синтаксисе обращения к элементу вложенного списка. Найдите строку с ошибкой и исправьте её, чтобы вывести число 5.

Найдите ошибку и исправьте
numbers = [[1, 2, 3], [4, 5, 6]]
# Нужно получить число 5
val = numbers[1, 1]
print(val)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Длина вложенного списка

id: 40010_task_nested_6

Внимательно проанализируйте код. Что выведет функция len(), примененная к самому списку my_list? Введите одно число.

Что должно получиться?
my_list = [
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15]
]
print(len(my_list))
Сообщения
Проверить
Показать подсказку

Создание матрицы из строк

id: 40010_task_nested_7

Соберите код, который создает пустой список, а затем добавляет в него две строки (два вложенных списка), формируя матрицу 2x2. Строка с ошибкой (лишняя) не должна попасть в решение.

Перетяните в правильном порядке строки из одного блока в другой
matrix = []
matrix.append([1, 2])
matrix.append([3, 4])
print(matrix[1][0])
matrix.add([1, 2])
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сумма всех элементов матрицы

id: 40010_task_nested_8

Восстановите правильный порядок строк кода для вычисления суммы всех чисел во вложенном списке data.

Расставьте строки в правильном порядке
data = [[1, 2], [3, 4]]
total_sum = 0
for row in data:
    for num in row:
        total_sum += num
print(total_sum)
Сообщения
Проверить
Показать подсказку

Генерация списка списков

id: 40010_task_nested_9

Часто нужно создать матрицу заданного размера, заполненную нулями. Заполните пропуски, чтобы создать список из 3 списков, в каждом из которых по 2 нуля, используя умножение списков.

Заполните пропуски
rows = 3
cols = 2

# Создаем матрицу 3x2
matrix = [[0] * input1S for _ in range(input2S)]

print(matrix)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру