如何嵌套OrderedDict?
我试过了:
table=collections.OrderedDict()
table['E']['a']='abc'
但这显示错误。
我也尝试过:
table=collections.OrderedDict(OrderedDict())
table['E']['a']='abc'
这也显示错误。
我试过了:
table=collections.OrderedDict()
table['E']=collections.OrderedDict()
table['E']['a']='abc'
这很好。
在我的编码中,我必须像这样使用:
table=collections.OrderedDict()
for lhs in left:
table[lhs]=collections.OrderedDict()
for val in terminal:
table[lhs][val]=0
效果很好。但是还有其他方法吗?当我阅读python时,它会自动管理其数据结构。
无论如何,要声明一个字典以及它将嵌套多少,并且一行中嵌套的数据结构将是什么。
使用一个额外的循环只是为了声明一个字典,感觉就像我在python中丢失了一些东西。
如果您真的想在一行中做到这一点,那么这将工作
table = collections.OrderedDict([(lhs, collections.OrderedDict(zip(terminal, [0] * len(terminal)))) for lhs in left])
您最好(特别是如果终端有很多会员)做
zipped = zip(terminal, [0] * len(terminal))
table = collections.OrderedDict([(lhs, collections.OrderedDict(zipped)) for lhs in left])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句