2012-11-05 38 views

回答

12

词典没有顺序,因此没有开始或结束。显示顺序是任意的。 如果需要顺序,你可以用它代替一个dicttuplelist一个S:

In [1]: mylist = [] 

In [2]: mylist.append(('key', 'value')) 

In [3]: mylist.insert(0, ('foo', 'bar')) 

您可以轻松地将其转换成dict后:

In [4]: dict(mylist) 
Out[4]: {'foo': 'bar', 'key': 'value'} 

另外,使用如IamAlexAlright所建议的collections.OrderedDict

+0

thx,那工作 – user1801180

4

否。从集合模块中检查OrderedDict。

5

Python中的dict不是“有序的” - 在Python 2.7+中有collections.OrderedDict,但除此之外 - 没有... Python中字典的关键是高效的键 - >查找值...订单你看到他们在完全是任意的,这取决于散列算法...

+0

它取决于散列算法以及项目插入的顺序(发生冲突时)。 – mgilson

+0

@mgilson Yup - 完全不同于C++'map' - 确保按键顺序 - 等等.. –

+1

我不会了解C++ ...我的第一个编程类是C++,我讨厌它* 。我认为编程是有史以来最愚蠢的事情。具有讽刺意味的是,最终我开始喜欢编程,当时我开始用C编程,然后用Fortran编程(看起来我倒退了很多)。 python,Fortan和C几乎是我现在编码的唯一语言 - 必要时在这里和那里使用一些shell脚本。 – mgilson

相关问题