@Lepilov

Как сгенерировать словарь в цикле?

Не получается написать элегантное решение для наполнения словаря, наверное дело в понедельнике) Хочется чтото вроде 'однострочника' что бы не писать for loop
Смысл такой, есть функция
get_groups_assets_in_campaign_data которая возвращает словарь
аргументами которой являются пары key, value словаря campaigns_per_customer_id
Пример:
campaigns_per_customer_id = {1: ['one',  'two',  'three'], 2: ['one', 'two', 'three'], ....}

Т.е. вызов происходит таким образом

get_groups_assets_in_campaign_data(
                str(customer_id), campaign_ids
            )
            for customer_id, campaign_ids in campaigns_per_customer_id.items()
        )


Как получить в итоге результирующий словарь , являющийся объединением всех словарей полученных в результате вызова get_groups_assets_in_campaign_data

Что-то типа такого (только этот пример не рабочий)
result = {}
    result.update(
    (get_groups_assets_in_campaign_data(
            str(customer_id), campaign_ids
        )
        for customer_id, campaign_ids in campaigns_per_customer_id.items()
    ))
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Что-то такое?
result = dict(
    itertools.chain.from_iterable(
        get_groups_assets_in_campaign_data(str(customer_id), campaign_ids).items() 
        for customer_id, campaign_ids in campaigns_per_customer_id.items()
    )
)

Но прямо скажу, это говнострочник. Цикл for понятнее будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы