Skip to main content
 首页 » 编程设计

python之Python中保持字典参数顺序的方法是什么

2025年05月04日8soundcode

def createNode(doc_, **param_): 
    cache = {'p':'property','l':'label','td':'totalDelay','rd':'routeDelay','ld':'logicDelay'} 
    for index in param_: 
        newIndex = cache[index] 
        value = param_[index] 
        print newIndex, '=', value

doc = 10 createNode(doc, p='path', l='ifft4k_radix4_noUnolling_core.vi', td='3.0', ld='1.0', rd='2.0')

在 Python 2.6 上运行这段代码会得到以下结果。

routeDelay = 2.0 
property = path 
totalDelay = 3.0 
logicDelay = 1.0 
label = ifft4k_radix4_noUnolling_core.vi 

我需要保持参数的顺序,我的意思是,property 首先出现,然后是 label,直到我得到 routeDelay 最后。

问:Python中如何保持字典参数顺序?

请您参考如下方法:

I need to keep the order of the parameter, I mean, property comes first, then label until I get reouteDelay last.

那么您只是按错误的顺序做事——不需要有序的字典!尝试使用成对的元组来缓存,如下所示:

def createNode(doc_, **param_): 
    cache = ( ('p', 'property'), , ('l', 'label'), ('td', 'totalDelay'), 
              ('rd', 'routeDelay'), ('ld', 'logicDelay') ) 
    for index, newIndex in cache: 
        if index not in param_: 
            continue 
        value = param_[index] 
        print newIndex, '=', value 

这与您的 createNode 版本具有完全相同的语义,加上维护您希望的顺序的所需属性,并且性能至少一样好。通过关注“保持字典有序”,你关注的是错误的问题(唉,对于大多数人们寻求“有序字典”的情况!-)。