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 相关文章推荐
举例详解Python中循环语句的嵌套使用
May 14 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
Python读取Excel的方法实例分析
Jul 11 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
python 产生token及token验证的方法
Dec 26 Python
python下载微信公众号相关文章
Feb 26 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
Python yield的用法实例分析
Mar 06 Python
详解python变量与数据类型
Aug 25 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 开源框架22个简单简介
2009/08/24 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
详解Django中的form库的使用
2015/07/18 Python
Python使用gensim计算文档相似性
2016/04/10 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
python实现简单flappy bird
2018/12/24 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
幼儿园秋季开学寄语
2014/08/02 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python
springboot读取nacos配置文件
2022/05/20 Java/Android