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的闭包和装饰器
Feb 26 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
django-csrf使用和禁用方式
Mar 13 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
如何通过一篇文章了解Python中的生成器
Apr 02 Python
pandas中pd.groupby()的用法详解
Jun 16 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高手?学会“懒惰”的编程
2006/12/05 PHP
php实例分享之二维数组排序
2014/05/15 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Python类属性与实例属性用法分析
2015/05/09 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Python获取时间戳代码实例
2019/09/24 Python
python文件路径操作方法总结
2020/12/21 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
网上蛋糕店创业计划书
2014/01/24 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
如何正确理解python装饰器
2021/06/15 Python
k8s部署redis cluster集群的实现
2021/06/24 Redis
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript