gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:24:28 24 4
gpt4 key购买 nike

假设 orig 是一个 OrderedDict,它包含普通的字符串:字符串键值对,但有时值可能是另一个嵌套的 OrderedDict

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

规则:

  • 假设 key 字符串是不可预测的
  • 假设嵌套可以无限发生,例如1-50 级都有字符串、OrderedDicts 等作为值。

需要 sorted 算法的帮助:

import string
from random import choice


orig = OrderedDict((
('a', choice(string.digits)),
('b', choice(string.digits)),
('c', choice(string.digits)),
('special', OrderedDict((
('a', choice(string.digits)),
('b', choice(string.digits)),
('c', choice(string.digits)),
)))
))

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 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22721579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com