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的chardet库获得文件编码并修改编码
Jan 22 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
浅析Python编写函数装饰器
Mar 18 Python
Python 数据结构之队列的实现
Jan 22 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
python如何将两张图片生成为全景图片
Mar 05 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 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获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
javascript编写简易计算器
2017/05/06 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
Python定义一个函数的方法
2020/06/15 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
python中time、datetime模块的使用
2020/12/14 Python
Lucene推荐的分页方式是什么?
2015/12/07 面试题
最新自我评价范文
2013/11/16 职场文书
优秀村官事迹材料
2014/01/10 职场文书
高级工程师英文求职信
2014/03/19 职场文书
广告语设计及教案
2014/03/21 职场文书
国企干部对照检查材料
2014/08/22 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
个人更名证明
2015/06/23 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
Python打包为exe详细教程
2021/05/18 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
Python IO文件管理的具体使用
2022/03/20 Python