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复制文件的方法实例详解
May 22 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
Python实现Kmeans聚类算法
Jun 10 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
python将字符串转变成dict格式的实现
Nov 18 Python
keras 权重保存和权重载入方式
May 21 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
详解python tkinter 图片插入问题
Sep 03 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 Python
python实现自动清理文件夹旧文件
May 10 Python
Python Flask请求扩展与中间件相关知识总结
Jun 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获取远程图片体积大小的实例
2013/11/12 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
详解python中的json和字典dict
2018/06/22 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
医学类导师推荐信范文
2013/11/19 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python