字典在for循环Python中自动排序

时间:2015-07-22 06:15:21

标签: python for-loop dictionary

我在python中写下了这个程序

创建字典

IF <YOUR CONDITION>
BEGIN
    SELECT *
    FROM tbl1 t1
    INNER JOIN tb2 t2
        ON t1.Id = t2.id;
END
ELSE
BEGIN
    SELECT *
    FROM tbl1 t1;
END

运行循环后

 a = { 'a':'b', 'x':'x', '2':'2' }

结果是

 for c in a:
   a[c]

我希望,应该有&#34; b x 2&#34;结果,但它会自动排序,为什么会发生这种情况,我该如何控制它?

1 个答案:

答案 0 :(得分:1)

python中的

Dictionary 没有排序,接收密钥的顺序基本上取决于python实现。您的代码不应该依赖它。

来自documentation -

  

最好将字典视为无序密钥组:值对,并要求密钥是唯一的(在一个字典中)

如果订单对您的计划很重要,请使用collections.OrderedDict。示例 -

>>> from collections import OrderedDict
>>> d = OrderedDict([('a','b'),('x','x'),('2','2')])
>>> for c in d:
...     d[c]
...
'b'
'x'
'2'