OrderedDict不保留订单

use*_*318 5 python dictionary ordereddictionary

from collections import OrderedDict
import pprint

menu = {"about" : "about", "login" : "login", 'signup': "signup"}

menu = OrderedDict(menu)
pprint.pprint(menu.items())

import sys
sys.exit()
Run Code Online (Sandbox Code Playgroud)

输出是:

[('about', 'about'), ('signup', 'signup'), ('login', 'login')]
Run Code Online (Sandbox Code Playgroud)

因此,即使使用,订单也不会保留OrderedDict.我知道字典默认情况下不保留初始顺序,以及所有这些内容.但我想知道为什么OrderedDict不起作用.

Sne*_*tel 10

通过将项目放入(非有序)dict并从中构造OrderedDict,您已经丢弃了原始订单.从元组列表构造OrderedDict,而不是dict.