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多进程操作实例
Nov 21 Python
Python 中的with关键字使用详解
Sep 11 Python
Python实现的归并排序算法示例
Nov 21 Python
Django自定义用户认证示例详解
Mar 14 Python
Python查找文件中包含中文的行方法
Dec 19 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
PyCharm 专业版安装图文教程
Feb 20 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
Python+Appium新手教程
Apr 17 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数据库操作方法(MYSQL版)
2011/06/08 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
用JQUERY增删元素的代码
2012/02/14 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
Python实现高效求解素数代码实例
2015/06/30 Python
python 默认参数问题的陷阱
2016/02/29 Python
python3实现windows下同名进程监控
2018/06/21 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Django操作session 的方法
2020/03/09 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python操作redis数据库的三种方法
2020/09/10 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
致短跑运动员广播稿
2014/01/09 职场文书
给交警的表扬信
2014/01/12 职场文书
反对邪教标语
2014/06/30 职场文书
小学课外活动总结
2014/07/09 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers