Python常见排序操作示例【字典、列表、指定元素等】

yipeiwu_com6年前Python基础

本文实例讲述了Python常见排序操作。分享给大家供大家参考,具体如下:

字典排序

  • 按value排序
d1 = {"name":"python","bank":"icbc","country":china}
# reverse是否倒序,x[1]代表value,x[0]为key
d1 = sorted(d1.items(),lambda x: x[1],reverse=True)

  • 按key排序
d1 = {"name":"python","bank":"icbc","country":china}
d1 = sorted(d1.items())

列表排序

  • 不去重排序
l = [3,2,4,5]
l = sorted(l)  # 升序
# l = sorted(l,reverse=True)  # 降序

  • 去重排序
l = [3,2,3,5,1]
l = set(l)   # 使用set集合去重
l = list(l)   #
l = sorted(l)   # 排序

字典列表排序

# 以age升序排序
L = [
  {"name":"python","age":12},
  {"name":"ghj","age":10},
  {"name":"java","age":17}
]
L = sorted(L,key=lambda x: x["age"])

根据指定列表的元素顺序进行排序

用途:对于取出MySQL与MongoDB的数据时,我们常常需要对数据进行位置更换顺序,此时此种排序就能很好的解决我们的问题,对于下面列子中的sortList的数据我们可以使用Redis进行存储

# 指定列表,假设存储的是curList中的ID列表
sortList = ["4","3","5","2","1"]
# 当前列表
curList = [{"id":"1","province":"河南"},{"id":"2","province":"河北"},{"id":"3","湖南"},{"id":"4","province":"湖北"},{"id":"5","province":"江西"}]
# 根据指定列表中的ID顺序,对当前列表进行排序
curList = sorted(curList,key = lambda item:sortList.index(item["id"]))
print(curList)
# [{"id":"4","province":"湖北"},{"id":"3","province":"湖南"},{"id":"5","province":"江西"},{"id":"2","province":"河北"},{"id":"1","province":"河南"}]

PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python模拟登录之滑块验证码的破解(实例代码)

模拟登录之滑块验证码的破解,具体代码如下所示: # 图像处理标准库 from PIL import Image # web测试 from selenium import webdri...

Python处理PDF及生成多层PDF实例代码

Python提供了众多的PDF支持库,本文是在Python3环境下,试用了两个库来完成PDF的生成的功能。PyPDF对于读取PDF支持较好,但是没找到生成多层PDF的方法。Reportl...

Python 在OpenCV里实现仿射变换—坐标变换效果

Python 在OpenCV里实现仿射变换—坐标变换效果

在现实的图像操作软件中,经常碰到的不是给出放大多少倍,而是由用户在软件的界面上选择多大的区域,或者选择几个点,那么这样情况下,怎么样来计算出变换矩阵呢?从前面知道变换矩阵是2X3的矩阵,...

django 外键model的互相读取方法

先设定一个关系模型如下: from django.db import models class Blog(models.Model): name = models.CharFiel...

Python 隐藏输入密码时屏幕回显的实例

我们再登录账号密码的时候,账号可以回显在屏幕上,但是对于比较隐私的项目例如密码最好是不要再屏幕上回显。就像我们再终端登录linux服务器的时候,输入信息的时候只显示用户名,而不显示登录密...