Python:OrderedDictionary基于键值的长度排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:OrderedDictionary基于键值的长度排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1080字,纯文字阅读大概需要2分钟。
内容图文
![Python:OrderedDictionary基于键值的长度排序](/upload/InfoBanner/zyjiaocheng/763/7aaaf739f9174da89875a94b0abdb86d.jpg)
我有一个像这样的对象:
t = {'rand_key_1': ['x'], 'rand_key_2': [13,23], 'rand_key_3': [(1)], 'rk5': [1,100,3,4,3,3]}
具有随机键(字符串和/或整数)的字典,其中ALL具有列表作为值,具有不同的大小.
我想把这个字典变成一个OrderedDict,它根据字典项列表的长度排序.所以订购后我想得到:
t_ordered = {'rk5': ..., 'rand_key_2': .., 'rand_key_1': .., 'rand_key_3': ..}
(如果两个或多个项目具有相同的值,则它们的顺序并不重要.
我试过这个,但我失败了:
OrderedDict(sorted(d, key=lambda t: len(t[1])))
我不是经验,如果我尝试的是超级愚蠢的话,请原谅我.
我能做什么?
谢谢.
解决方法:
你实际上与传递给sort的排序函数非常接近.需要注意的是,sorted将按顺序返回字典键的可互换性.因此,如果我们修复您的函数以使用每个键索引字典:
>>> sorted(t, key=lambda k: len(t[k]))
['rand_key_3', 'rand_key_1', 'rand_key_2', 'rk5']
您还可以指定以相反的顺序返回键,并直接在这些键上迭代:
>>> for sorted_key in sorted(t, key=lambda k: len(t[k]), reverse=True):
... print sorted_key, t[sorted_key]
rk5 [1, 100, 3, 4, 3, 3]
rand_key_2 [13, 23]
rand_key_3 [1]
rand_key_1 ['x']
通常您不需要创建OrderedDict,因为您只需使用最新的字典数据迭代新的排序列表.
内容总结
以上是互联网集市为您收集整理的Python:OrderedDictionary基于键值的长度排序全部内容,希望文章能够帮你解决Python:OrderedDictionary基于键值的长度排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。