python sorted函数的小练习及解答


Posted in Python onSeptember 18, 2019

前两天学习了一下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]))

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

题目

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))

答案

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编程中JSON模块的使用
Oct 15 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
Python语言的变量认识及操作方法
Feb 11 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
Python骚操作之动态定义函数
Mar 26 Python
Python列表list操作相关知识小结
Jan 29 Python
django model object序列化实例
Mar 13 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
用Python提取PDF表格的方法
Apr 11 Python
python 默认参数相关知识详解
Sep 18 #Python
python连接PostgreSQL数据库的过程详解
Sep 18 #Python
Python传递参数的多种方式(小结)
Sep 18 #Python
余弦相似性计算及python代码实现过程解析
Sep 18 #Python
python之yield和Generator深入解析
Sep 18 #Python
PyTorch预训练的实现
Sep 18 #Python
用python实现英文字母和相应序数转换的方法
Sep 18 #Python
You might like
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python实现截屏的函数
2015/07/26 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python如何实现图片压缩
2020/09/11 Python
python绘制雷达图实例讲解
2021/01/03 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
四风存在的原因分析
2014/02/11 职场文书
先进班组材料范文
2014/12/25 职场文书
庆六一开幕词
2015/01/29 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS