我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 自定义类的排序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python  自定义类的排序

Python 里面自定义类的时候, 一般需要重写几个方法, __init__ 一般是构造函数

这里面有一个__cmp__() 是比较函数, 重写它的时候,一定要记得返回值有三个,0,±1  !! 而不是返回0,1   这里没有注意,导致在排序的时候,一直出错啊,QAQ

或者直接使用内置函数 cmp() 来返回就行

def __cmp__(self,other):
		if self.age<other.age:
			return -1
		elif self.age==other.age:
			return 0
		else:
			return 


上述的等价于:

这样再重写了这个__cmp__ 函数之后,就可以为类列表排序了

def __cmp__(self,other):
		return cmp(self.age,other.age)


看例子:

class Prople:
	"""docstring for Prople"""
	
	def __init__(self,n,a):
		self.name=n
		self.age=a
	def __cmp__(self,other):
		return cmp(self.age,other.age)

	def __str__(self):
		return self.name+" "+str(self.age)


p=Prople("liu",60)
pp=Prople("li",50)

li=[]
li.append(p)
li.append(pp)
print sorted(li)[0]

这次老老实实的记住了!! 排序坑了好长时间。。。。 伤不起。。。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 自定义类的排序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 自定义类的排序

Python 里面自定义类的时候, 一般需要重写几个方法, __init__ 一般是构造函数这里面有一个__cmp__() 是比较函数, 重写它的时候,一定要记得返回值有三个,0,±1  !! 而不是返回0,1   这里没有注意,导致在排序
2023-01-31

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

首先把实现方法写出来,其实很简单,只需要一句代码即可:productlist.sort(lambda p1, p2:cmp(p1.getPrice(), p2.getPrice()))数组productlist中存储的是自定义类Produc
2022-06-04

python在自定义类上使用堆排序的示例

小编给大家分享一下python在自定义类上使用堆排序的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;
2023-06-14

excel排序怎么按照自定义序列排序

这篇文章主要介绍“excel排序怎么按照自定义序列排序”,在日常操作中,相信很多人在excel排序怎么按照自定义序列排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”excel排序怎么按照自定义序列排序”的疑
2023-07-02

mybatis-plus自定义排序的实现

本文主要介绍了mybatis-plus自定义排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-09

Python实现快速排序和插入排序算法及自定义排序的示例

一、快速排序快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方
2022-06-04

怎么在Java中对TreeSet进行自定义类型的排序

怎么在Java中对TreeSet进行自定义类型的排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Androi
2023-06-06

Python导入自定义类

现有自定义类(Color.py)如下,类位于路径’/Users/chuxing/python/test’下:class Color(object): def __init__(self, red, green, blue):
2023-01-31

Solr搜索的自定义评分与排序规则(如何为Solr搜索定义自定义的评分和排序规则?)

Solr提供强大的评分和排序功能,允许您定制搜索结果。自定义评分允许您基于业务规则调整文档评分,而自定义排序确定结果顺序。通过以下步骤配置:定义评分函数(如BoostQueryParser插件或函数评分查询),配置排序规则(如字段排序或函数排序),并在搜索请求中应用规则。此方法可在各种场景下创建更符合特定需求的搜索结果。
Solr搜索的自定义评分与排序规则(如何为Solr搜索定义自定义的评分和排序规则?)
2024-04-02

pgsql自定义排序的方法是什么

在 PostgreSQL 中,可以通过创建自定义排序规则来实现自定义排序。以下是实现自定义排序的一般方法:创建自定义排序规则函数:首先,您需要创建一个函数来定义您的自定义排序规则。这个函数会接收两个参数,比较它们并返回一个整数值,表示它们的
pgsql自定义排序的方法是什么
2024-04-09

Python 定义自己的常量类

在实际的程序开发中,我们通常会将一个不可变的变量声明为一个常量。在很多高级语言中都会提供常量的关键字来定义常量,如 C++ 中的 const , Java 中的 final 等,但是 Python 语言因为变量无类型,所以也就不存在这样的修
2023-01-31

MySQL使用order by field()自定义排序

使用order by field()自定义排序 MySQL在对结果集排序的时候,可以根据某些字段排序,也可以通过field函数自定义任意排序。语法... order by field(value,str1,str2,str3,str4,,,str
MySQL使用order by field()自定义排序
2018-11-09

Hadoop中怎么自定义输出排序

本篇文章为大家展示了Hadoop中怎么自定义输出排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。package com.hgs;import java.io.DataInput;import ja
2023-06-02

DataGridView中怎么实现自定义排序

要在DataGridView中实现自定义排序,可以通过实现DataGridView的SortCompare事件来实现。SortCompare事件在DataGridView中的两个单元格需要比较时触发,可以在该事件中自定义比较方法。下面是一
DataGridView中怎么实现自定义排序
2024-03-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录