B. Таблица умножения 2.0

Вашему решению будет предоставлена единственная переменная n — необходимый размер таблицы умножения.

Напишите списочное выражения для генерации таблицы умножения.

Примечание

В решении не должно быть ничего, кроме списочного выражения.

Пример

Ввод

n = 3

Вывод

[[1, 2, 3], [2, 4, 6], [3, 6, 9]]

Ввод

n = 4

Вывод

[[1, 2, 3, 4], [2, 4, 6, 8], [3, 6, 9, 12], [4, 8, 12, 16]]

Решение

Списочные выражения по-началу воспринимаются довольно трудно.
Приведу картинку, которая объясняет как они устроены по отношению к обычным циклам.

В случае затруднений всегда можно сначала написать обычный код, а потом “обернуть” его в списочное выражение. Единственное различие в нашем случае с примером выше состоит в том, что пример порождает плоский список, а нам необходимо, чтобы получился список списков, поэтому нужно “обернуть” одно списочное выражение в другое.

Посмотреть код

Решение

Python
[[(i + 1) * (j + 1) for j in range(n)] for i in range(n)]
Подписаться
Уведомить о
guest
5 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Smotri
Smotri
28.10.2024 23:13

если сначала итерируется внутренний (вложенный) цикл, который судя по схеме в строчном варианте находится правее внешнего, то почему в решении этой задачи со списком сначала итерируется левый for, истина где-то рядом, но она ускользает от меня =)

Smotri
Smotri
Ответить на  Сергей Клочко
29.10.2024 09:56

Правильно ли я понимаю последовательность?
сначала j присваивается значение 0 j=0
после чего i=0
далее происходит вычисление и выдача (i + 1) * (j + 1)
следующим шагом j всё так же 0, а i проходит на следующую итерацию i = 1
(И большее вам спасибо за разъяснения)

Smotri
Smotri
Ответить на  Сергей Клочко
31.10.2024 12:34

спасибо, разобрался