Python 里如何将 dict 按 value 排序?
ringa_lee
ringa_lee 2017-04-17 13:34:55
[Python讨论组]

下面这个字典 dict,如何按照 value 重新排序?

foo = {
    a: 2,
    b: 1,
    c: 6,
    d: 4,
    e: 3,
    f: 5
}
ringa_lee
ringa_lee

ringa_lee

全部回复(2)
迷茫

dict 本身是无序的,这时候你需要的是OrderedDict

顺带说下你这个dict有问题,key在这里应当是字符串吧,来看栗子:

from collections import OrderedDict

foo = OrderedDict([
    ('a', 2),
    ('b', 1),
    ('c', 6),
    ('d', 4),
    ('e', 3),
    ('f', 5)
])
bar = OrderedDict(sorted(foo.items(), key=lambda x: x[1]))
print(bar)

直接打印出来好像没dict好看,用json加工一下,结果如下:

[1]In: import json
[2]In: print(json.dumps(bar, indent=4))

[3]Out:
{
    "b": 1,
    "a": 2,
    "e": 3,
    "d": 4,
    "f": 5,
    "c": 6
}

EOF

PHP中文网

[v for v in sorted(foo.values())]

以及,这个字典是不是有问题啊。。。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号