Немного трудно понять, что вы пытаетесь сделать. У вас уже есть массивы с именем x, y, z
в вашем пространстве имен, так почему вы пытаетесь создать новые переменные x, y, z
, указывающие на те же массивы?
Если у вас есть массив numpy с именем a
и вы Если вы хотите создать новую переменную x
, указывающую на нее, вы можете сделать
exec('%s = %s' % ('x', 'a'))
, что, конечно, так же, как x = a
.
Маловероятно, что вам действительно нужно используйте exec
для этой проблемы. Если вы хотите дать имена (содержащиеся в списке) для нескольких массивов, вам следует заглянуть в контейнер Python dict
, а не создавать переменные пространства имен. Например:
array_di = dict()
keys = ['x', 'y', 'z']
arrays = [np.random.randn(3), np.random.randn(4), np.random.randn(5)]
for k, a in zip(keys, arrays):
array_di[k] = a
или в виде одной строки:
array_di = {k: a for k, a in zip(keys, arrays)}
Затем вы можете получить доступ к массивам, например, array_di['x']
.