Python 里如何将 dict 按 value 排序?

发布于 2022-08-29 21:38:20 字数 132 浏览 16 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柳若烟 2022-09-05 21:38:21

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

背叛残局 2022-09-05 21:38:21

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文