我想使用带有键的字典,也想使用带有索引的列表。但我发现字典的赋值顺序不对。
我的 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]
这对索引编制有一些帮助。但是还有其他方法吗?
请您参考如下方法:
使用collections.OrderedDict。它需要 Python 2.7,但它会记住添加 key 的顺序,而不是根据底层哈希算法以任意顺序存储它们。
更新:准确的说,dict的存储没有变化,只是在迭代的时候多了一个数据结构来实现,在key原来的插入顺序的基础上,提供一个固定的顺序。
