python – 递归地按键对嵌套的OrderedDict进行排序
发布时间:2020-11-18 08:02:02 所属栏目:Python 来源:互联网
导读:假设orig是一个包含普通字符串:字符串键值对的OrderedDict,但有时该值可能是另一个嵌套的OrderedDict. 我想按键,按字母顺序(升序)对orig进行排序,并以递归方式进行. 规则: 假设键字符串是不可预测的 假设嵌套可以无限发生,例如级别1-50都具有字符串,Ordered
|
假设orig是一个包含普通字符串:字符串键值对的OrderedDict,但有时该值可能是另一个嵌套的OrderedDict. 我想按键,按字母顺序(升序)对orig进行排序,并以递归方式进行. 规则: >假设键字符串是不可预测的 需要协助排序算法: import string
from random import choice
orig = 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的Cmd.cmd中完成filename tab-completion
- python – 迭代工作表,行,列
- python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)
- Python键入模块类型
- Django 1.10中有哪些django.core.context_processors.reque
- python – scikit-learn是否执行“真正的”多元回归(多个因
- django或playframework
- python – ElementTree find()/ findall()找不到带命名空间
- python – paramiko没有现有的会话异常
- python – 如何在Linux上打包Kivy IOS应用程序?
