Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с заполнением матрицы в Python

. . Ученик (129), на голосовании 1 неделю назад
rows, cols = 3, 3
zero_matrix = [[0 for _ in range(cols)] for _ in range(rows)]

как эта строка кода работает ? что за ноль в начале ? если он относится к списку, как мне понять к какому ? просто ноль обычный, почему после for идет нижнее подчеркивание ?
Голосование за лучший ответ
GGG Просветленный (33206) 1 месяц назад
Она создает двумерный список (матрицу) размером rows x cols, заполненный нулями.
В вашем случае, это матрица 3x3, заполненная нулями.
Внутренний список: [0 for _ in range(cols)]
Это список, который будет содержать cols элементов, каждый из которых равен 0.
Здесь 0 — это значение, которое добавляется в список на каждой итерации.
for _ in range(cols) — цикл, который повторяется cols раз (3 раза), но переменная цикла (_) не используется.
Внешний список: [[... ] for _ in range(rows)]
Этот цикл повторяет создание внутреннего списка rows раз (3 раза).
На каждой итерации создается новая строка матрицы (новый список из нулей).
0 — это значение, которое вы хотите поместить в каждый элемент матрицы.
Если вы хотите заполнить матрицу другими значениями, замените 0 на нужное вам значение.
В Python _ часто используется как имя переменной для обозначения того, что переменная не будет использоваться в дальнейшем.
Это означает, что нам не важно значение счетчика цикла, мы просто хотим выполнить действие определенное количество раз.
Использование _ улучшает читаемость кода, показывая, что переменная цикла не имеет значения.
0 находится внутри первого списка: [0 for _ in range(cols)].
Этот список создается на каждой итерации внешнего цикла for _ in range(rows).
Таким образом, 0 добавляется в внутренний список, который представляет собой строку матрицы.
Пошаговый пример:
Итерация 1 (внешний цикл):
Создается внутренний список: [0, 0, 0]
Итерация 2 (внешний цикл):
Создается еще один внутренний список: [0, 0, 0]
Итерация 3 (внешний цикл):
Создается третий внутренний список: [0, 0, 0]
Результат:
Матрица: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
. .Ученик (129) 1 месяц назад
спасибо, 3 дня искал ответ <3
Похожие вопросы