#python #python-3.x #for-loop #iteration
Вопрос:
У меня есть простой код, в котором я хочу обновить имена переменных следующим образом:
n = 5
for i in range(0, n):
train_fold_[i], val_fold_[i] = result[i][0],result[i][1]
Я хочу, чтобы приведенный выше код генерировал в общей сложности 10 переменных с именами train_fold_0, val_fold_0, train_fold_1, val_fold_1,……, train_fold_4, val_fold_4.
Однако, когда я запускаю этот код, он генерирует только 2 переменные следующим образом: train_fold_i, val_fold_i.
Я знаю, что это чрезвычайно просто, но может ли кто-нибудь, пожалуйста, помочь мне с этим, так как я относительно новичок в python.
Комментарии:
1. Обычно в этом случае вы использовали бы структуру данных (возможно, список). Почему вы хотите иметь 10 разных переменных?
2. Делать
train_fold, val_fold = zip(*[result[i] for i in range(n)])
. Теперь вы можете получить доступ к своим десяти значениямtrain_fold[0]
, таким какval_fold[0]
,train_fold[1]
, и т.д.3. Если
n == len(result)
вы можете сделать это проще:train_fold, val_fold = zip(*result)
Ответ №1:
Вы могли бы использовать exec
n = 5
for i in range(0, n):
value1, value2 = i, i 1
exec(f'train_fold_{i}, val_fold_{i} = {value1}, {value2}')
затем
print(train_fold_3, val_fold_3)
>>> 3 4