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快速排序代码实例
Nov 21 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
python 系统调用的实例详解
Jul 11 Python
python中map()函数的使用方法示例
Sep 29 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
python画双y轴图像的示例代码
Jul 07 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
python简单实现插入排序实例代码
Dec 16 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
Selenium浏览器自动化如何上传文件
Apr 06 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
node通过npm写一个cli命令行工具
2017/10/12 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
python协程用法实例分析
2015/06/04 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
对python中的pop函数和append函数详解
2018/05/04 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
python解析含有重复key的json方法
2019/01/22 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python实现扫雷小游戏
2020/04/24 Python
如何利用Python识别图片中的文字
2020/05/31 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
高二学生评语大全
2014/04/25 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js