Динамическое создание переменных

Имеется словарь и нужно создавать переменные со значением ключа,они будут равны значению этого ключа. Количество ключей не известно Например:

d = {'h1':'name1', 'h2':'name2'}
print(h1, h2) 
#name1 name2

Ответы (3 шт):

Автор решения: web developer

Если нет крайней необходимости создавать беспорядок имен переменных, я бы просто использовал словарь, где вы можете динамически создавать имена ключей и связывать значение с каждым.

    a = {}
k = 0
while k < 10:
    # dynamically create key
    key = ...
    # calculate value
    value = ...
    a[key] = value 
    k += 1
→ Ссылка
Автор решения: Павел

Если для общего развития, то можно вот так.

d = {'h1':'name1', 'h2':'name2'}

for key, value in d.items():
    globals()[key] = value

print(h1, h2)

Но вообще динамическое создание переменных - это очень плохая практика. Стоит задуматься о реализации через ассоциативные структуры данных. Например, словарь.

→ Ссылка
Автор решения: Юрыч BRO
d = {
    # Какой то словарь
}
globals().update(d)

Это добавит словарь со всеми значениями к глобальным переменным. А если понадобятся локальные, то globals заменяет на locals. А вообще, лучше просто использовать словарь вместо захламления пространства имен

→ Ссылка