如何在python中枚举OrderedDict

use*_*013 5 python ordereddictionary python-2.7

所以,我是一个正在尝试学习 python 的 php 程序员。我有一个我想要排序的 dict 字典。我把它们变成了 OrderedDict。他们排序完美,原始字典看起来像这样。这只是一个 3 维数组,对吗?

a["01/01/2001"]["un"]=1
a["01/01/2001"]["nn"]=1
a["01/02/2001"]["aa"]=2
a["01/02/2001"]["bb"]=2
a["01/03/2001"]["zz"]=3
a["01/03/2001"]["rr"]=3
Run Code Online (Sandbox Code Playgroud)

我可以将它们转换为 OrderedDict,并希望以以下格式呈现它们

"01/01/2001" un=1 nn=1
"01/02/2001" aa=2 bb=2
"01/03/2001" zz=3 rr=3
Run Code Online (Sandbox Code Playgroud)

我可以在 php 中编写一个简单的循环来遍历这个关联数组,但我不知道如何在 python 中做到这一点。有人可以帮忙吗?

Mar*_*ers 5

使用dict.items()ordict.iteritems()方法遍历键和值;后者允许您在不构建键值对中间列表的情况下进行迭代:

for date, data in a.iteritems():
    print date,
    for key, value in data.iteritems():
        print '{}={}'.format(key, value),
    print
Run Code Online (Sandbox Code Playgroud)

直接在字典上循环会给你键;您仍然可以使用订阅访问这些值:

for date in a:
    print date,
    for key in a[date]:
        print '{}={}'.format(key, a[date][key]),
    print
Run Code Online (Sandbox Code Playgroud)