У меня есть словарь, который инициализируется так:
n = 5
myDict = { 'Field1' : 'Hello',
'Field2' : [0]*n,
'Field3' : [2]*n,
'Field4' : [4]*n,
'Field5' : 'World'}
Я хотел бы иметь возможность инициализировать myDict, не зная значения для n
. А затем в более поздний момент времени, когда известен n
, обновите все поля, которые используют n
для назначения длины списка. Я бы предпочел не пересоздавать словарь. Моей первой мыслью было бы использовать функцию ListInit, которая возвращает себя, если не установлено n. Мне кажется, я видел шаблон проектирования, который выглядел примерно так:
def ListInit(n=None):
return n if n else ListInit
myDict = { 'Field1' : 'Hello',
'Field2' : [0]*ListInit(),
'Field3' : [2]*ListInit(),
'Field4' : [4]*ListInit(),
'Field5' : 'World'}
ListInit(5)
Я знаю, что это не работает по множеству причин, но, надеюсь, он дает представление о том, как этот шаблон может выглядеть подобно. Спасибо!