python sorted函数原理解析及练习


Posted in Python onFebruary 10, 2020

这篇文章主要介绍了python sorted函数原理解析及练习,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前两天学习了一下socket编程,在向某大神请教问题时被嫌弃了,有一种还没学会走就想跑的感觉。大神说我现在的水平应该去做一些像是操作文件、序列号等的小练习来加深理解。下面是他给我出的小练习:

1、datas = [['sherry',19,'female'],['flora',21,'female'],['june',15,'femal']],分别根据名字首字母和年龄进行排序输出;

2、按照给定的输出方式进行输出比较结果,对Person类进行补充;

class_mates = {'sherry':[18,'male'],'june':[20,'female'],'flora':[19,'female'],'alina':[21,'male']}

class Person(object):

def __init__(self,name,age):

self.name = name

p1 = Person('sherry',20)
p2 = Person('june',20)


if p1<p2:
print('p1:{} less than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))
else:
print('p1:{} gte than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))

就这么简单我竟做了一下午(打脸)

题目1

def get_first(info):
   first_value = info[0][0]
   return first_value

 na = sorted(datas,key=get_first)
 print(na)

 def age_sort(info):
   return info[1]
 print(sorted(datas,key=age_sort))

题目2答案

class_mates = {'sherry':[18,'male'],'june':[20,'female'],'flora':[19,'female'],'alina':[21,'male']}

class Person(object):

  def __init__(self,name,age):
    self.name = name
    self.age = age
  def __lt__(self,others):
    if(self.age<others.age):
      return 1
    elif(self.age==others.age): 
      if(self.name[0]<others.name[0]):
        return 1
      else:
        return 0
    return 0

p1 = Person('sherry',20)
p2 = Person('june',20)


if p1<p2:
  print('p1:{} less than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))
else:
  print('p1:{} gte than p2:{}'.format([p1.name,p1.age],[p2.name,p2.age]))

查看python官方文档,总结一下get到的知识。

1、sorted(iterable[, key][, reverse])

返回一个重新排序的list,有两个可选的关键字参数(使用参数名而不是位置来指定参数)。

key 定义了一个带参数的函数,提取list的某个元素作为这个函数的参数,返回值作为你叫关键字,默认值是None(直接比较list的元素)

reverse是一个布尔值。True表示将list里面的元素反向排序。

2、ln(a,b),当使用a<b的我时候,会自动调用__ln__(a,b)这个函数,因此我们要在类中重新定义__ln(a,b)__函数,自己定义什么时候返回true什么时候返回false。每一种类型都有自己的ln()函数,所以在重新定义的时候里面也可以调用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python中__name__的使用实例
Apr 14 Python
python开发之函数定义实例分析
Nov 12 Python
浅谈python对象数据的读写权限
Sep 12 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
Python多层装饰器用法实例分析
Feb 09 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
python数据抓取3种方法总结
Feb 07 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 #Python
python yield和Generator函数用法详解
Feb 10 #Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 #Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 #Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 #Python
Python3 元组tuple入门基础
Feb 09 #Python
Python3列表List入门知识附实例
Feb 09 #Python
You might like
php文件夹的创建与删除方法
2015/01/24 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
Javascript与flash交互通信基础教程
2008/08/07 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
JavaScript简介
2015/02/15 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python 换位密码算法的实例详解
2017/07/19 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python画图的函数用法以及技巧
2019/06/28 Python
django删除表重建的实现方法
2019/08/28 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
婚礼证婚人演讲稿
2014/09/13 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python