Python2.4循环后字典中的错误键位置

2024-06-25 06:10:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望输出字典键/VAL如下所示:

{'pid': '10076', 'nick': 'Jonas', 'time': '2714', 'score': '554'}

但在循环之后,我得到如下输出:

{'nick': 'Jonas', 'score': '554', 'pid': '10076', 'time': '2714'}

我能做些什么来避免这个?你知道吗

datalines = ['pid\tnick\ttime\tscore', '10076\tJonas\t2714\t554']
stats = {}
keys = datalines[0].split('\t')
vals = datalines[1].split('\t')
for idx in range(0,len(keys)):
    stats[keys[idx]] = vals[idx]
print stats

Tags: 字典timestatsvalkeyspidnicksplit
1条回答
网友
1楼 · 发布于 2024-06-25 06:10:35

字典在(以及几乎所有的)中是无序的。因此,您永远不能假设顺序与添加元素的顺序相同。你知道吗

但是,您可以使用OrderedDict包中的collections,该包是一个字典(它支持字典的所有功能),并保持添加元素的顺序:

from collections import OrderedDict

datalines = ['pid\tnick\ttime\tscore', '10076\tJonas\t2714\t554']
stats = OrderedDict()
keys = datalines[0].split('\t')
vals = datalines[1].split('\t')
for idx in range(0,len(keys)):
    stats[keys[idx]] = vals[idx]
print stats

然后打印:

>>> print stats
OrderedDict([('pid', '10076'), ('nick', 'Jonas'), ('time', '2714'), ('score', '554')])

相关问题 更多 >