Я пишу сценарий, поддерживающий пользователей в анализе FE. Во время выполнения скрипта я получаю список таких объектов FEA
Ents=['BAR','SHELL','BEAM']
Мне нужно создать словарь для каждого элемента в списке, чтобы собрать и сохранить правильные значения из другого источника, а количество возможных объектов FEA велико и может измениться, если будет введен новый объект.
Есть ли способ создать словарь «динамически во время выполнения» (я не знаю, как лучше описать свой запрос), например
for item in Ents:
item+'_dict' = dict()
В результате я получаю 3 дикта для приведенного выше примера: BAR_dict, SHELL_dict и BEAM_dict.
И для
Ents = ['TRUSS','WELD','CONNECTOR']
Я получаю dict с именами TRUSS_dict, WELD_dict и CONNECTOR_dict
Вы также можете использовать dict of dict, используя dict comprenhension: Ents_dict = {e: {} for e in Ents}
Использование динамических переменных обычно считается антипаттерном в Python. Скорее, вы должны использовать какой-то контейнер. Тип, который вы выберете, зависит от ваших потребностей. В этом случае вам кажется, что вы хотите получить доступ к своим данным с помощью нить, поэтому Другой dict - естественный выбор.






Попробуй это:
EntDicts = {}
for Ent in Ents:
EntDicts[Ent] = {}
Тогда используйте EntDicts по желанию ...
Почему бы не хранить все диктовки в «супер-диктовке», например
dicts = dict(); dicts[item+'_dict'] = dict()?