【问题标题】:How do I initialization a dictionary without well defined field values如何在没有明确定义的字段值的情况下初始化字典
【发布时间】:2020-01-27 15:30:46
【问题描述】:

我有一个这样初始化的字典:

n = 5
myDict = { 'Field1' : 'Hello', 
           'Field2' : [0]*n, 
           'Field3' : [2]*n,
           'Field4' : [4]*n,
           'Field5' : 'World'}

我希望能够在不知道 n 的值的情况下初始化 myDict。然后在以后知道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)

我知道这不起作用的原因有很多,但希望它能让你了解这种模式可能是什么样子。谢谢!

【问题讨论】:

  • 感觉像是 XY 问题。为什么在知道n 之后不能创建myDict?你试图解决的实际问题是什么?你的方法介于困难和不可能之间。
  • ...或者在知道n 时使用必填字段更新字典。
  • 也许字典不是这里的正确工具。作为具有计算属性的类,这可能更有意义。

标签: python dictionary oop initialization


【解决方案1】:

嘿,为什么不执行一个没有任何值 ar null valuse 的字典,并在 n 不为 null 时打印另一个具有更新值的字典

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多