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

复制代码 代码如下:

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自定义类的数组排序实现代码

本文地址: http://www.cppcns.com/jiaoben/python/161890.html

python对数组排序代码实现_Python自定义类的数组排序实现代码相关推荐

  1. python计算复数的辐角_Python 自定义类中的函数和运算符重载

    如果你曾在字符串(str)对象上进行过 + 或 * 运算,你一定注意到它跟整数或浮点数对象的行为差异: >>> # 加法 >>> 1 + 2 3 >>& ...

  2. python定义词典_python – 自定义类是一个字典,但初始化没有字典副本?

    出于易读性的目的,我希望有一个自定义类,其行为与dict完全相同(但是带有有意义的类型,而不是更通用的dict类型): class Derivatives(dict): "Dictionar ...

  3. python通过封装可以实现代码复用_Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  4. 在python中定义类时、运算符重载_python自定义类运算符重载

    假设我有一个班级: class Cat: def __init__(self, name = "default", age = 0): self.name = name self. ...

  5. python动态数组的最大值_python实现动态数组的示例代码

    实现一个支持动态扩容的数组并完成其增删改查 #通过python实现动态数组 """ 数组特点: 占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1) 添加 ...

  6. 基于python的视频监控系统_Python远程视频监控程序的实例代码

    老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可是找来找去不是有毒就是收费,无奈技 ...

  7. python将空格变成换行_Python基础之PEP8规范(代码写作规范)

    文章目录 1.缩进 2.命名约定 3.Python之禅 PEP8是Python的官方文档中提供的代码规范,结合这套规范,我顺便整理了一下自己的写代码习惯. 点这里查看PEP8官方原文,本文只节选了我自 ...

  8. python通过解释器来编译_python 解释器与编译过程,代码的搬运工

    虚拟机工作前: python 在运行.py 文件的时候,先进行编译字节码的形式来进行存在,字节码的存在是为了优化速度. 字节码的更改是通过时间戳来进行.字节码发送的python 虚拟机之中,虚拟机是p ...

  9. python使用redis做缓存_python实现类redis缓存

    越来越觉得的缓存是计算机科学里最NB的发明(没有之一), 现在项目用的是redis做的缓存, 它的两个特性用的蛮顺手的: 键值查找功能 缓存可设置过期时间 突突然的,觉得用python也可以简单的模拟 ...

最新文章

  1. R语言ggplot2可视化使图形的背景在不同区域有不同的颜色实战
  2. DOT NET 三个名词
  3. 西华大学计算机组成原理补考卷,浙江大学航空航天学院空天信息技术保研
  4. 25. Leetcode 143. 重排链表 (链表-基础操作类-重排链表)
  5. 剑指offer之求两个数之和(不能使用四则运算)
  6. 科普 | 以链接为中心的系统:Link-based Systems
  7. java ffmpeg amr转wav_FFmpeg转音频格式为wav
  8. Word插入高分辨率图片无法显示
  9. 线上服务器老是卡,该如何优化?
  10. 数据库系统概念-第六版 - charter 3 - 笔记 4
  11. python问卷星 自动答题_问卷星自动答题神器
  12. php运维知识,分享一些linux运维的基础知识
  13. linux ps-e和-ax区别,Linux编程 6 (查看进程 ps 及输出风格)
  14. 最新车载CarPlay盒子中方案内部配置参数
  15. 设置bing桌面壁纸
  16. 查看手机wifi密码
  17. 《卸甲笔记》-单行函数对比之二
  18. html word-break,HTML Style wordBreak用法及代码示例
  19. 单因素方差分析和多因素方差分析的差异是什么?
  20. 【本科课程】数电复习题

热门文章

  1. 极简主义APP界面UI设计实例模板,不简单!
  2. oracle字体加粗函数_Oracle日期操作函数
  3. excel匹配_Excel常用的关联匹配函数
  4. Inject Dll 过程
  5. 【数学建模】长方形椅子在不平地面上能否放稳
  6. ASN.1编解码:asn1c的基本使用
  7. xlib/x11:创建一个监测键盘事件的窗口-4-箭头控制窗口移动
  8. Python生态概览(三):图形用户界面开发库、游戏开发库、虚拟现实库、图形艺术库
  9. 百度地图获取河流_想要提高学生对地理的兴趣,就要多利用地图,培养学生的思维能力...
  10. ajax上传json到服务器