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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
python3操作微信itchat实现发送图片
Feb 24 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
numpy数组广播的机制
Jul 12 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python中time库的实例使用方法
Oct 31 Python
django ajax发送post请求的两种方法
Jan 05 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
详解如何用Python实现感知器算法
Jun 18 Python
详解NumPy中的线性关系与数据修剪压缩
May 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下使用strpos需要注意 === 运算符
2010/07/17 PHP
php常用的工具开发整理
2019/09/26 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
js实现放大镜特效
2017/05/18 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
wxPython色环电阻计算器
2019/11/18 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
安全责任书范文
2014/03/12 职场文书
装修施工安全责任书
2014/07/24 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
2014年林业工作总结
2014/12/05 职场文书
乐山大佛导游词
2015/02/02 职场文书
大学生自荐书范文
2015/03/05 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
如何用python插入独创性声明
2021/03/31 Python
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
JavaScript流程控制(循环)
2021/12/06 Javascript