0

有人可以解释字典是如何排序的,为什么?下面一行的输出:

>>> d= {(1, 2):"f", (1, 3):"f", (1, 4):"f", (1, 4):"f"}
>>> d
{(1, 2): 'f', (1, 5): 'f', (1, 3): 'f', (1, 4): 'f'}

一般来说:

>>> de= {"a":1, "b":1, "c":1, "e":1, "d":1}
>>> de
{'a': 1, 'c': 1, 'b': 1, 'e': 1, 'd': 1}

列表的行为不是这样,所以我很困惑。这更多是出于好奇,例如,我可以自己对其进行排序。

4

3 回答 3

2

它们是哈希表,因此它们不保证以任何方式进行任何排序。毕竟,这就是他们速度快的原因。

于 2012-12-09T03:01:49.447 回答
2

字典没有排序。语言规范不保证如果您打印字典两次,则顺序将相同。另一方面,列表确实是排序的。如果您想模拟具有给定键顺序的字典之类的东西,那么您可以在键和值的元组上使用列表。

于 2012-12-09T03:02:03.893 回答
0

字典是键/值对。如果要按排序顺序迭代字典,可以将字典索引和值切片到列表中并对它们进行排序。假设您想按排序顺序查看字典值

于 2021-06-15T17:12:10.050 回答