У меня есть список R (на самом деле список списка списка), содержащий данные, которые я хочу использовать в SAGE, для запуска процедуры выпуклой оптимизации.Назначение матрицы R из списка в список мудрецов
Код идет как этот
sage_list = [None] * 2
for k in range(2):
x = r('my_r_list[[1]][[1]][[k+1]]')
sage_list[k] = x._sage_()
Первый в x
присвоения не является последовательным. Если я выполняю несколько раз один и тот же код, я получаю разные данные. Но что еще более важно sage_list[k]
назначение выдает ошибку:
NameError: name 'structure' is not defined
делает следующее, однако работает:
sage_list = [None] * 2
x = r('my_r_list[[1]][[1]][[1]]')
y = r('my_r_list[[1]][[1]][[2]]')
sage_list[0] = x._sage_()
sage_list[1] = y._sage_()
любую идею почему? (Конечно, на самом деле я гораздо больше, чем 2 итерации)
Мне кажется, что в вашем цикле for вы используете 'k', ожидая, что он изменит аргумент' r' и, следовательно, 'x'. Однако 'k' в этом случае просто рассматривается как строка, я не думаю, что вы подставляете значение переменной цикла. Попробуйте: 'x = r (paste0 (" my_r_list [[1]] [[1]] [[", k + 1,"]] ")' – thepule