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读取csv文件示例(python操作csv)
Mar 11 Python
python连接oracle数据库实例
Oct 17 Python
python实现linux下使用xcopy的方法
Jun 28 Python
python 默认参数问题的陷阱
Feb 29 Python
Python面向对象之继承代码详解
Jan 29 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
Python实现购物车程序
Apr 16 Python
基于python实现从尾到头打印链表
Nov 02 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
利用python爬取有道词典的方法
Dec 08 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
JS中的phototype详解
2017/02/04 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python 编程之twisted详解及简单实例
2017/01/28 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
学校开学标语
2014/10/06 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
你需要掌握的20个Python常用技巧
2022/02/28 Python
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python