python sorted函数原理解析及练习


Posted in Python onFebruary 10, 2020

这篇文章主要介绍了python sorted函数原理解析及练习,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前两天学习了一下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]))

就这么简单我竟做了一下午(打脸)

题目1

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))

题目2答案

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 list中append()与extend()用法分享
Mar 24 Python
Python使用新浪微博API发送微博的例子
Apr 10 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python get获取页面cookie代码实例
Sep 12 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
简单了解python变量的作用域
Jul 30 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python创建字典及相关管理操作
Apr 13 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 #Python
python yield和Generator函数用法详解
Feb 10 #Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 #Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 #Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 #Python
Python3 元组tuple入门基础
Feb 09 #Python
Python3列表List入门知识附实例
Feb 09 #Python
You might like
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
python 性能提升的几种方法
2016/07/15 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
简述Python2与Python3的不同点
2018/01/21 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python中scikit-learn机器代码实例
2018/08/05 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python datetime处理时间小结
2020/04/16 Python
python 下划线的不同用法
2020/10/24 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
文明好少年事迹材料
2014/08/19 职场文书
资料员岗位职责
2015/02/10 职场文书