Добавить словарь в словарь как вложенный - PullRequest
2 голосов
/ 24 апреля 2020
for iteration, i_parameter in enumerate(list_of_things):

   # Call Function_a()
   dict_DFResults = Function_a(i_parameter, matrix)

Программа выполняет итерации по list_of_things с 4 элементами в ней.
Функция_a возвращает словарь с 3 фреймами данных {0: фрейм данных, 1: фрейм данных, 2: фрейм данных}.
Я хотел бы добавить возвращаемый словарь из функции для каждой итерации к новому вложенному словарю ( dict_things ), наконец, так:
{0: {0: DF, 1: DF, 2: DF}, 1: {0: DF, 1: DF, 2: DF}, 2: {0: DF, 1: DF, 2: DF}, 3: {0: DF, 1: DF, 2: DF}}

Я попробовал это с ...

dict_things = dict_DFResults.copy()
dict_things.update()

... но все, что я пытался, не работало должным образом.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

.update предназначен для использования с многократной подачей. Одним из возможных способов является предоставление dict, тогда значение ключей в dict_things будет обновлено до соответствующих значений в предоставленном dict. То есть вы могли бы сделать:

dict_things = {}
for iteration, i_parameter in enumerate(list_of_things):
   dict_things.update({iteration: Function_a(i_parameter, matrix)})

Приведенный выше пример только для того, чтобы показать, как можно использовать dict.update - эта задача может быть выполнена с использованием dict-понимания, что приводит к более читаемому коду.

0 голосов
/ 24 апреля 2020
dict_things = {}
for iteration, i_parameter in enumerate(list_of_things):
   dict_things[iteration] = Function_a(i_parameter, matrix)

или с использованием разборчивого понимания:

dict_things = { iteration: Function_a(i_parameter, matrix) for iteration, i_parameter in enumerate(list_of_things) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...