Как инициализировать словарь без четко определенных значений полей - PullRequest
0 голосов
/ 27 января 2020

У меня есть словарь, который инициализируется так:

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)

Я знаю, что это не работает по множеству причин, но, надеюсь, он дает представление о том, как этот шаблон может выглядеть подобно. Спасибо!

1 Ответ

0 голосов
/ 27 января 2020

Эй, почему бы не выполнить один словарь, который не имеет никакого значения ar null valuse, и напечатать другой словарь с обновленными значениями, если n не равно нулю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...