Создание словарей во время выполнения

Я пишу сценарий, поддерживающий пользователей в анализе 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

Почему бы не хранить все диктовки в «супер-диктовке», например dicts = dict(); dicts[item+'_dict'] = dict()?

konvas 07.08.2018 09:48

Вы также можете использовать dict of dict, используя dict comprenhension: Ents_dict = {e: {} for e in Ents}

DFE 07.08.2018 09:49

Использование динамических переменных обычно считается антипаттерном в Python. Скорее, вы должны использовать какой-то контейнер. Тип, который вы выберете, зависит от ваших потребностей. В этом случае вам кажется, что вы хотите получить доступ к своим данным с помощью нить, поэтому Другой dict - естественный выбор.

juanpa.arrivillaga 07.08.2018 09:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это:

EntDicts = {}
for Ent in Ents:
    EntDicts[Ent] = {}

Тогда используйте EntDicts по желанию ...

Другие вопросы по теме