Python Dictionary items()奇怪的行为

时间:2016-11-01 16:03:53

标签: python python-3.x dictionary python-3.5

我有一个看起来像这样的字典:

{1: [(7.8121826300806522e-06, 0.0027950172807843614),
(4.8435532306500046e-05, 0.006959395541691121),
(4.6873095780483916e-06, 0.002165014458884123),
(2.9686293994306483e-05, 0.005728026341619567),
...

等等。但是,当我将此dict传递给我执行以下操作的函数时:

for key, vals in dic.items():
    for i in range(len(vals)):
        mean, std = vals[i]
        print(mean, std)

这些值以完全不同的顺序出现:

0.194110864246 0.48917376306916205
0.00532478368066 0.07417999717478747
0.00590132275876 0.07746526118007628
0.192434369854 0.447194389625775
0.0230381265761 0.17699968340608854
0.00160774718527 0.048076851436196597
0.0394265232975 0.19895854591008688
5.93725879886e-05 0.00790531061606315

但是,如果我将该函数的代码块 out 并在将其传递到函数之前将其运行到函数中,它将按预期工作,以与顶部显示的顺序相同的顺序打印这篇文章。

我的问题基本上......为什么?我该如何解决这个问题?有更好的方法吗?

编辑:这不是Python dictionary, how to keep keys/values in same order as declared?

的副本

^我的钥匙顺序无关紧要。 "完全不同的顺序"我在帖子中的值是按顺序打印的关键字1中列表的值。这就是为什么它很奇怪,因为它是一个不同的顺序。

例如:

(7.8121826300806522e-06, 0.0027950172807843614)

最终可能会打印出第11项左右,而不是第一项

0 个答案:

没有答案