Python反向字典项目顺序

Pok*_*u48 3 python sorting reverse dictionary python-3.x

假设我有一本字典:

d = {3: 'three', 2: 'two', 1: 'one'}
Run Code Online (Sandbox Code Playgroud)

我想重新排列此字典的顺序,以便该字典为:

d = {1: 'one', 2: 'two', 3: 'three'}
Run Code Online (Sandbox Code Playgroud)

我在想类似reverse()列表功能的东西,但是没有用。预先感谢您的回答!

Sha*_*ger 7

从CPython 3.6(作为实现细节)和Python 3.7(作为语言保证)开始,plain dict确实具有顺序。

在3.7和更低的,他们没有得到周围配套__reversed__dictdict看法,所以你必须对项目进行转换list(或者tuple,它并不真正的问题),并迭代它是反向:

d = {3: 'three', 2: 'two', 1: 'one'}
d = dict(reversed(list(d.items())))
Run Code Online (Sandbox Code Playgroud)

当3.8版本发布时,items视图将以相反的方式在本地进行迭代,因此您可以执行以下操作:

d = dict(reversed(d.items()))
Run Code Online (Sandbox Code Playgroud)

list根本不需要临时。

在3.6之前的版本中,您需要collections.OrderedDict(用于输入和输出)才能获得所需的结果。