Skip to main content
 首页 » 编程设计

python字典分配不按顺序

2025年05月04日18zhwl

我想使用带有键的字典,也想使用带有索引的列表。但我发现字典的赋值顺序不对。

我的 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原来的插入顺序的基础上,提供一个固定的顺序。