Не понимаю почему появляется такой ответ

a=[[a*b*c] for a in range(2) for b in range(2) for c in range(2)];print(a)

ответ:

[[0], [0], [0], [0], [0], [0], [0], [1]]


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

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

range(2) -> 0 и 1 -> 2 * 2 * 2 = 8 списков.

При умножении на 0 получаем 0

a = 0, b = 0, c = 0 -> [0]
a = 0, b = 0, c = 1 -> [0]
a = 0, b = 1, c = 0 -> [0]
a = 0, b = 1, c = 1 -> [0]
a = 1, b = 0, c = 0 -> [0]
a = 1, b = 0, c = 1 -> [0]
a = 1, b = 1, c = 0 -> [0]
a = 1, b = 1, c = 1 -> [1]

Вроде все логично?

Думаю так будет понятней:

for a in range(2):
    for b in range(2):
        for c in range(2):
            print(a, b, c)

0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

[Program finished]
→ Ссылка