Здесь вы сталкиваетесь с различными проблемами.
Вот ваш первый пример, оказываемых с пробельных более традиционно используется для Python:
#!python3
param = {}
for nround_counter in [1,2,3]:
{ print(nround_counter) }
Обратите внимание, что это Перебор ряд утверждений, утверждение (бесцельно и непоследовательно) кодируется в виде набора буквального выражение конструктора, вызываемое для его побочного эффекта (вызов функции печати). Он не модифицирует какое-либо состояние, но оценивается как набор, содержащий одиночный элемент None
как единственный его элемент, на каждой итерации через цикл.
Это не специальный синтаксис. Это просто непонятное использование синтаксиса строкового литерала Python.
Это также совершенно непонятно, что вы пытаетесь выполнить. Нет смысла перебирать список, который постоянно связывает param
с одним и тем же литеральным содержанием словаря снова и снова.
Возможно, если вы хотите построить какой-то стол?
param = dict()
for n in range(1,4):
print(n)
param['objective%s'%n] = 'multi:softmax'
... или что-то в этом роде. Примечание I инициализируйте param
с dict()
, а не буквально {}
, потому что я думаю, что это немного чище и понятнее, если немного более подробный. Также я использую range(1,4)
, а не ваш литеральный список, опять же потому, что он чище. То, что я делаю в теле этого цикла, глупо, но это пример того, что вы могли бы сделать.
Обратите внимание, что я генерирую уникальный ключ (константный строковый литерал с интерполяцией строкового представления моей переменной итератора) для каждого прохождения через цикл. Обычно можно ожидать, что значения также будут динамически вычисляться или получаться каким-либо образом; но я не понимаю, как нет четкого педагогического примера, который приходит на ум.
Что такое '{' object ':' multi: softmax '}'. Вам нужны какие-либо конкретные значения или просто строка? –
Тело петли Питона не заключено в фигурные скобки. Удалить их. – DyZ
Эта конкретная строка задает определенные значения, но есть другие ключи, которые я хотел бы установить с помощью nround_counter, например param ['num_round'] = nround_counter. Я думал, что, разрешив проблему синтаксиса для этой строки, я смог бы отладить остальную часть кода. – jkyh