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开发中module模块用法实例分析
Nov 12 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
python 构造三维全零数组的方法
Nov 12 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
python基础教程之while循环
Aug 14 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
python 逐步回归算法
Apr 06 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 Python
Python+Appium自动化测试的实战
Jun 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水印
2007/03/16 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP生成随机密码类分享
2014/06/25 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
php实现映射操作实例详解
2019/10/02 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
javascript div 弹出可拖动窗口
2009/02/26 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python多线程并发实例及其优化
2019/06/27 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python谱减法语音降噪实例
2019/12/18 Python
通过实例解析Python return运行原理
2020/03/04 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python super()函数的基本使用
2020/09/10 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
Europcar比利时:租车
2019/08/26 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
演讲稿格式范文
2014/05/19 职场文书
记者节感言
2015/08/03 职场文书
python模板入门教程之flask Jinja
2022/04/11 Python