Как написать несколько вложенных циклов в одну строку Python

Дан список списков:

a = [[['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]], [['1', '2', '3'], [1, 2, 3], [0, 0, 0, 0], [0, 0, 0, 0]]]

Как можно вот такую конструкцию прописать в одну строку:

b = []
for i in a:
    for j in i:
        if j[0] == 1:
            b.append(j[1])

Пробовал вот такое, что нибудь - ошибка:

b = [j[1] for j in [for i in a] if j[0] == 1]

введите сюда описание изображения


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

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

во первых подозреваю, что for i in i: - это слишком круто для нашего простого сообщества :)

как вы думаете, что делает данная строчка?

а вообще можно сделать так:

вместо

b = []
for i in a:
    for j in i:
        if j[0] == 1:
            b.append(j[1])

так:

b = [j[1] for i in a for j in i if j[0] == 1]

если я правильно с вашими i разобрался :)

→ Ссылка