Python (пытается понять поток)
Напишите программу, которая принимает 2 цифры, X,Y в качестве входных данных и генерирует 2-мерный массив. Значение элемента в i-й строке и j-м столбце массива должно быть равно i*j.
Примечание: i=0,1.., X-1; j=0,1, ¡Y-1.
Пример
Предположим, что программе даны следующие входные данные:
3,5
Тогда вывод программы должен быть:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]
Моя программа:
x = int(raw_input()) y = int(raw_input()) l=[] for i in range(x): inner_list = [] for j in range(y): inner_list.append((i*j)) l.append(inner_list) print l
Вместо определения 'inner_list' внутри 'я', если я определяю это снаружи, как в:
x = int(raw_input()) y = int(raw_input()) l=[] inner_list = [] for i in range(x): for j in range(y): inner_list.append((i*j)) l.append(inner_list)
Я не в состоянии понять результат:
Выход:
[0] / inner_list
[0, 0] /inner_list
[0, 0, 0] /inner_list
[[0, 0, 0]] /l
[0, 0, 0, 0] /inner_list
[0, 0, 0, 0, 1] /inner_list
[0, 0, 0, 0, 1, 2] /inner_list
[[0, 0, 0, 0, 1, 2], [0, 0, 0, 0, 1, 2]] /l
[0, 0, 0, 0, 1, 2, 0] /inner_list
[0, 0, 0, 0, 1, 2, 0, 2] /inner_list
[0, 0, 0, 0, 1, 2, 0, 2, 4] /inner_list
[[0, 0, 0, 0, 1, 2, 0, 2, 4], [0, 0, 0, 0, 1, 2, 0, 2, 4], [0, 0, 0, 0, 1, 2, 0, 2, 4]] /l
Почему конечный результат выглядит так, как показано выше
[[0, 0, 0, 0, 1, 2, 0, 2, 4], [0, 0, 0, 0, 1, 2, 0, 2, 4], [0, 0, 0, 0, 1, 2, 0, 2, 4]] /l
и нет
[[0,0,0],[0,0,0,0,1,2],[0,0,0,0,1,2,0,2,4]]
Что я уже пробовал:
Я перепробовал все, но безуспешно.