Генераторы списков

238 просмотра
0
0 Комментариев

Есть простой цикл:

 for i in res:
    g = nets(i[1])
      if g is not None:
          ......

Как заменить на генераторы списков?

 [nets(i[1]) for i in res]


Добавить комментарий

1 Ответы

Python Опубликовано 18.12.2018
0

Простейший вариант:

[nets(i[1]) for i in res if nets(i[1])]

Но, во-первых, тут двойной вызов функции nets, а во-вторых, нам некуда пристроить код, который у тебя обозначен многоточием.

Есть другое решение:

def do_something(g):
    .......
 
map(do_something, filter([nets(i[1]) for i in res]))

Если очень хочется сделать всё это ленивым, можно просто использовать ленивые filter и map.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up