Объясните строчку

Всем привет! Объясните, пожалуйста, что происходит во второй строчке этого кода. Никак не могу понять, откуда взялись i и j (вычитание в скобках после abs) и почему эта строчка даёт такой результат.

Код:

n = 5
a = [[abs(i - j) for j in range(n)] for i in range(n)]
print(a)

Результат:

[[0, 1, 2, 3, 4], [1, 0, 1, 2, 3], [2, 1, 0, 1, 2], [3, 2, 1, 0, 1], [4, 3, 2, 1, 0]]

Ответы (1 шт):

Автор решения: timur

Этот код можно переписать так:

n = 5

a = []
for i in range(n):
    temp = []
    for j in range(n):
        temp.append(abs(i - j))
    a.append(temp)

print(a)
→ Ссылка