python - Python 中错误的输出顺序

标签 python sorting dictionary

我的代码有问题。它没有按照我想要的方式打印出来。

print("Hello Herp, welcome to Derp v1.0 :)")

inFile = input("Herp, enter symbol table file: ")
symTbl = {}
for line in open(inFile):
    i = line.split()
    symTbl[i[0]] = int(i[1])
print("Derping the symbol table (variable name => integer value)...")
for var1 in symTbl:
    print(var1 + " => " + str(symTbl[var1]))

当我打开文本文件时,它会打印出这样的内容:

z => 30
y => 20
x => 10

这是不对的,我希望得到这样的输出:

x => 10
y => 20
z => 30

原始文本文件是这样的:

x 10
y 20
z 30

最佳答案

您需要使用有序字典。当您从字典中读取 key (在您的情况下使用 for 循环)时,无法保证您将以什么顺序获得 key 。 OrderedDict 将始终按照输入的顺序返回键。

from collections import OrderedDict
symTbl = OrderedDict()

关于python - Python 中错误的输出顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965642/

相关文章:

python - 运行程序的模块的名称

mongodb - 过滤集合但按内部属性排序

string - 为什么使用通用 lambda 对字符串向量进行排序不起作用?

javascript - 如何配置数据表,以便它根据创建的日期对记录进行排序(描述)?

python - 如何从 Python 中的嵌套字典中打印所有键和值?

Python:如何按叶值过滤 n 嵌套的字典?

Python Regex Compile 拆分字符串,以便单词首先出现

python - 自定义 kivy 事件问题

python - 循环遍历字典时删除和添加键

c# - Dictionary.ContainsKey 总是返回 False