Как написать несколько вложенных циклов в одну строку 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 разобрался :)
