加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python嵌套字典:来自集合的OrderedDict

发布时间:2020-12-20 12:23:24 所属栏目:Python 来源:网络整理
导读:如何嵌套OrderedDict? 我试过了: table=collections.OrderedDict()table['E']['a']='abc' 但这显示错误. 我也尝试过: table=collections.OrderedDict(OrderedDict())table['E']['a']='abc' 这也显示错误. 我试过了: table=collections.OrderedDict()tabl
如何嵌套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])

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读