python – 递归地按键对嵌套的OrderedDict进行排序

python – 递归地按键对嵌套的OrderedDict进行排序,第1张

概述假设orig是一个包含普通字符串:字符串键值对的OrderedDict,但有时该值可能是另一个嵌套的OrderedDict. 我想按键,按字母顺序(升序)对orig进行排序,并以递归方式进行. 规则: >假设键字符串是不可预测的 >假设嵌套可以无限发生,例如级别1-50都具有字符串,OrderedDicts等作为值. 需要协助排序算法: import stringfrom random impo 假设orig是一个包含普通字符串:字符串键值对的OrderedDict,但有时该值可能是另一个嵌套的OrderedDict.

我想按键,按字母顺序(升序)对orig进行排序,并以递归方式进行.

规则:

>假设键字符串是不可预测的
>假设嵌套可以无限发生,例如级别1-50都具有字符串,OrderedDicts等作为值.

需要协助排序算法:

import stringfrom random import choiceorig = OrderedDict((    ('a',choice(string.digits)),('b',('c',('special',OrderedDict((        ('a',)))))sorted_copy = OrderedDict(sorted(orig.iteritems(),...))self.assertEqual(orig,sorted_copy)
解决方法 编辑:对于python 3.6,@ pelson的答案更好

就像是:

def sortOD(od):    res = OrderedDict()    for k,v in sorted(od.items()):        if isinstance(v,dict):            res[k] = sortOD(v)        else:            res[k] = v    return res
总结

以上是内存溢出为你收集整理的python – 递归地按键对嵌套的OrderedDict进行排序全部内容,希望文章能够帮你解决python – 递归地按键对嵌套的OrderedDict进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1207260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存