преобразовать список dicts в dict of dicts python3 - PullRequest
0 голосов
/ 20 мая 2019

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

a = [{'name': 'analyst21', 'id': 1, 'data': 'the process data3'}, {'name': 'analyst2', 'id': 2, 'data': 'process data2'}, {'name': 'analyst3', 'id': 3, 'data': 'process data3'}]

Я хочу преобразовать его в диктат

Требуемый вывод:

a = {{'name': 'analyst21', 'id': 1, 'data': 'the process data3'}, {'name': 'analyst2', 'id': 2, 'data': 'process data2'}, {'name': 'analyst3', 'id': 3, 'data': 'process data3'}}

IЗнайте, что dict нужны пары ключ-значение.Есть ли другой способ сделать это возможным.мой вопрос не так.Получил несколько отрицательных голосов.Я просто хочу, чтобы данные списка были заключены внутри этого {}.Я использую эти результаты для дальнейшей обработки.

1 Ответ

3 голосов
/ 20 мая 2019

Python dict является структурой ключ-значение . Требуемый вывод не является диктом - dict должен иметь оба ключа и соответствующие значения (или быть пустым). Если вы хотите преобразовать список dicts в dict of dicts, вам следует выбрать какой-нибудь хешируемый ключ (обратите внимание, что сам dict не является хэшируемым, поэтому вы не можете использовать обычные dicts в качестве ключей!) И использовать их в качестве ключей dict , Вот пример, как вы можете это сделать:

a = [{'name': 'analyst21', 'id': 1, 'data': 'the process data3'},
     {'name': 'analyst2', 'id': 2, 'data': 'process data2'},
     {'name': 'analyst3', 'id': 3, 'data': 'process data3'}]

b = {d['name']: d for d in a}
b

вернет вам диктовку:

{'analyst2': {'data': 'process data2', 'id': 2, 'name': 'analyst2'},
 'analyst21': {'data': 'the process data3', 'id': 1, 'name': 'analyst21'},
 'analyst3': {'data': 'process data3', 'id': 3, 'name': 'analyst3'}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...