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 random模块(获取随机数)常用方法和使用例子
May 13 Python
Python中的异常处理学习笔记
Jan 28 Python
python通过ftplib登录到ftp服务器的方法
May 08 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
Python 键盘事件详解
Nov 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,不用COM,生成excel文件
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Python使用gensim计算文档相似性
2016/04/10 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
大专毕业生简历的自我评价
2013/10/20 职场文书
公共场所标语
2014/06/30 职场文书
领导干部保密承诺书
2014/08/30 职场文书
高中班主任评语
2014/12/30 职场文书
技术员岗位职责
2015/02/04 职场文书
入团介绍人意见范文
2015/06/04 职场文书
商业计划书格式、范文
2019/03/21 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python