develop.16: Обсуждение вопросов программирования

Ответ на: FI9Bm1Fp07wwCoepvvJy
От: Andrew Lobanov (tavern,1) 24.07.19 08:18 UTC
Кому: All
Тема: Re: Python и магия генераторов
AL> Продолжаю учиться писать программы на питоне и возник один странный, может быть, вопрос. Есть строка, в которой хранится в "сыром" виде выхлопом x/c. То есть данные в виде
AL> ====

AL> echo.area:messages_count

AL> ====

AL> Я её хочу обработать минимальным количеством кода. Так что решил использовать генератор:

AL> ====

AL> {x.split(":")[0]: x.split(":")[1] for x in x_i.split("\n") if ":" in x}

AL> ====

AL> Но при этом мне очень не нравится дважды вызванный .split(":"). Можно как-то произвести сплит единожды для каждой итерации или придётся городить огород для этого?


Благодаря товарищам из Instead группы в ТГ решил это следующим образом:

====
{y[0]: int(y[1]) for y in (x.split(":") for x in counts.split("\n") if ":" in x)}
====

Если предложите вариант проще и быстрее, то буду рад.
[408 / 433]