Динамическое создание переменных
Имеется словарь и нужно создавать переменные со значением ключа,они будут равны значению этого ключа. Количество ключей не известно Например:
d = {'h1':'name1', 'h2':'name2'}
print(h1, h2)
#name1 name2
Ответы (3 шт):
Если нет крайней необходимости создавать беспорядок имен переменных, я бы просто использовал словарь, где вы можете динамически создавать имена ключей и связывать значение с каждым.
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)
Но вообще динамическое создание переменных - это очень плохая практика. Стоит задуматься о реализации через ассоциативные структуры данных. Например, словарь.
d = {
# Какой то словарь
}
globals().update(d)
Это добавит словарь со всеми значениями к глобальным переменным.
А если понадобятся локальные, то globals заменяет на locals.
А вообще, лучше просто использовать словарь вместо захламления пространства имен