Python - Unnest Список словарей - PullRequest
2 голосов
/ 06 февраля 2020

Есть ли еще способ Pythoni c, чтобы удалить этот список словарей?

Пример:

features = [{'annual_sales_revenue': {'definition': 'yearly revenue generated'}}, {'dnb_annual_employees': {'definition': 'number of employees'}}, {'global_industry_hospitality': {'definition': 'in hospitality industry'}}, {'itbuyindex': {'definition': "company's capacity to invest in technology"}}, {'test': {'definition': 'test'}}]

Мое решение:

{list(f.keys())[0]:f[list(f.keys())[0]]['definition'] for f in features}

Желаемый результат:

{'annual_sales_revenue': 'yearly revenue generated', 'dnb_annual_employees': 'number of employees', 'global_industry_hospitality': 'in hospitality industry', 'itbuyindex': "company's capacity to invest in technology", 'test': 'test'}

Ответы [ 2 ]

1 голос
/ 06 февраля 2020
{key: d[key]['definition'] for d in features for key in d}

Я немного предпочитаю это, чувствую, что немного чище

1 голос
/ 06 февраля 2020

Вы можете использовать двойное значение для -l oop со значением словаря:

features = [{'annual_sales_revenue': {'definition': 'yearly revenue generated'}}, {'dnb_annual_employees': {'definition': 'number of employees'}}, {'global_industry_hospitality': {'definition': 'in hospitality industry'}}, {'itbuyindex': {'definition': "company's capacity to invest in technology"}}, {'test': {'definition': 'test'}}]
result = {a:b['definition'] for i in features for a, b in i.items()}

Вывод:

{'annual_sales_revenue': 'yearly revenue generated', 'dnb_annual_employees': 'number of employees', 'global_industry_hospitality': 'in hospitality industry', 'itbuyindex': "company's capacity to invest in technology", 'test': 'test'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...