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实现查询苹果手机维修进度
Mar 16 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
python实现三维拟合的方法
Dec 29 Python
详解python中递归函数
Apr 16 Python
Django框架自定义session处理操作示例
May 27 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
python能否java成为主流语言吗
Jun 22 Python
keras K.function获取某层的输出操作
Jun 29 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设计模式之简单投诉页面实例
2016/02/24 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
详解vue-cli 接口代理配置
2017/12/13 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Python isinstance判断对象类型
2008/09/06 Python
python简单商城购物车实例代码
2018/03/15 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Numpy 多维数据数组的实现
2020/06/18 Python
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
奥巴马演讲稿
2014/01/08 职场文书
客户表扬信范文
2014/01/10 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
竞聘书的秘诀
2019/04/02 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
vue ref如何获取子组件属性值
2022/03/31 Vue.js