Python自定义类的数组排序实现代码


Posted in Python onAugust 28, 2016

首先把实现方法写出来,其实很简单,只需要一句代码即可:

productlist.sort(lambda p1, p2:cmp(p1.getPrice(), p2.getPrice()))

数组productlist中存储的是自定义类Product,Product有一个方法是返回商品的价格,于是对productlist按照Product的价格从低到高进行排序,仅需要如此简单的一行代码即可实现。

Python真的是一门简洁而强大的语言,实际上,我也是从写出一行代码之后,才真正感受到这门语言的魅力。

写到这里,顺便介绍一下lambda表达式的相关知识,现在很多语言都支持lambda表达式,甚至包括.Net。

lambda函数一般也被叫做匿名函数,先来看一个最简单例子:

def test(x):
 return x**2
print test(4)

如果使用lambda,则语法如下:

test = lambda x : x**2
print test(4)

从上面的例子可以看出,lambda语句构建的其实是一个函数对象,lambda最大的特点就是,可以省去定义函数的过程,让代码更加精简。

关于lambda的语法
lambda语句中,冒号前是参数,可以有多个,用逗号隔开;冒号右边是返回值。

Python 相关文章推荐
Python中尝试多线程编程的一个简明例子
Apr 07 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
浅谈Python中函数的参数传递
Jun 21 Python
windows下添加Python环境变量的方法汇总
May 14 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
详解python中各种文件打开模式
Jan 19 Python
Python实现查找数据库最接近的数据
Jun 08 Python
结束运行python的方法
Jun 16 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 #Python
Django URL传递参数的方法总结
Aug 28 #Python
python 网络编程常用代码段
Aug 28 #Python
Fabric 应用案例
Aug 28 #Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 #Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 #Python
python解决方案:WindowsError: [Error 2]
Aug 28 #Python
You might like
php防攻击代码升级版
2010/12/29 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
python实现发送邮件及附件功能
2021/03/02 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
化工专业自荐书
2014/06/16 职场文书
学校献爱心活动总结
2014/07/08 职场文书
会员卡清退活动总结
2014/08/27 职场文书
工作时间调整通知
2015/04/24 职场文书
法定代表人资格证明书
2015/06/18 职场文书