Можно ли сделать литерал по умолчанию буквальным для создания упорядоченных, а не неупорядоченных?
Я хотел бы напечатать сложные вложенные конфигурации, такие как:
config = {
'train': {
'speed': 0.001,
'initial_values': [1, 2, 3]
},
'model': {
...
}
}
и идею написатьбеспорядок скобок
config = OrderedDict([(
'train', OrderedDict([(
'speed', 0.001), (
'initial_values', [1, 2, 3])]),(
'model', OrderedDict([(
...
абсолютно неприменим.
Пожалуйста, не говорите о философии, почему мое желание плохо.
Хорошо, в настоящее время я написал бы что-то вроде:
def od(*args):
return OrderedDict([(args[i], args[i+1]) for i in range(0, len(args), 2)])
config = od(
'train', od(
'speed', 0.001,
'initial_values', [1, 2, 3]
),
'model', od(
...
)
)