python如何通过多个键值将对象进行排序

python如何通过多个键值将对象进行排序

这篇文章主要介绍了python如何通过多个键值将对象进行排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

通过多个键值将对象进行排序

python如何通过多个键值将对象进行排序

假设要对以下字典列表进行排序:

people=[{'name':'John',"age":64},{'name':'Janet',"age":34},{'name':'Ed',"age":24},{'name':'Sara',"age":64},{'name':'John',"age":32},{'name':'Jane',"age":34},{'name':'John',"age":99},]

不仅要按名字或年龄对其进行排序,还要将两个字段同时进行排序。在SQL中,会是这样的查询:

SELECT*FROMpeopleORDERbyname,age

实际上,这个问题的解决方法可以非常简单,Python保证sort函数提供了稳定的排序顺序,这也意味着比较相似的项将保留其原始顺序。要实现按名字和年龄排序,可以这样做:

importoperatorpeople.sort(key=operator.itemgetter('age'))people.sort(key=operator.itemgetter('name'))

要注意如何反转顺序。首先按年龄分类,然后按名字分类,使用operator.itemgetter()从列表中的每个字典中获取年龄和名字字段,这样你就会得到想要的结果:

[{'name':'Ed','age':24},{'name':'Jane','age':34},{'name':'Janet','age':34},{'name':'John','age':32},{'name':'John','age':64},{'name':'John','age':99},{'name':'Sara','age':64}]

名字是主要排序项,如果姓名相同,则以年龄排序。因此,所有John都按年龄分组在一起。

感谢你能够认真阅读完这篇文章,希望小编分享的“python如何通过多个键值将对象进行排序”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2022-03-17 21:20:55
收藏
分享
海报
0 条评论
27
上一篇:python数据类别的示例分析 下一篇:css最小宽度的语法是什么
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码