我想使用带有键的字典以及带索引的列表。但我发现字典的分配不合适。
我的python脚本是:
left=['E','Z','T','Y','F']
for lhs in left:
first[lhs]=set()
follow[lhs]=set()
print first
我得到的输出为:
{'E': set([])}
{'Z': set([]), 'E': set([])}
{'Z': set([]), 'E': set([]), 'T': set([])}
{'Y': set([]), 'Z': set([]), 'E': set([]), 'T': set([])}
{'Y': set([]), 'Z': set([]), 'E': set([]), 'T': set([]), 'F': set([])}
有一次它被插入到最后,另一次被插入到开头。 这让我觉得我根本不懂字典。 我在哪里可以深入了解字典。 以及如何使用键和索引遍历字典。 为此我现在正在使用:
for lhs in left:
print first[lhs]
这一些如何帮助索引。但还有其他方法吗?
答案 0 :(得分:6)
使用collections.OrderedDict
。它需要Python 2.7,但它会记住添加键的顺序,而不是基于底层哈希算法以任意顺序存储它们。
更新:确切地说,dict的存储不变,但迭代是通过附加数据结构实现的,以根据键的原始插入顺序提供固定顺序。