python lambda表达式在sort函数中的使用详解


Posted in Python onAugust 28, 2019

1.lambda表达式一般用法

语法:

lamda argument:expression

example:

add = lambda x, y: x+y
print(add(10, 20))<br data-filtered="filtered">>>> 30

2.lambda表达式在sort函数中的使用

假如a是一个由元组构成的列表,对该列表进行排序时,我们需要用到参数key,也就是关键词,如下面代码所示,lambda是一个匿名函数,是固定写法;x表示匿名函数的输入,即列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示匿名函数的输出,即元组里的第一个元素,即key = x[0];所以这句命令的意思就是按照列表中第一个元素进行排序。

a = [('b', 4), ('a', 12), ('d', 7), ('h', 6), ('j', 3)]
a.sort(key=lambda x: x[0])
print(a)<br data-filtered="filtered">>>>[('a', 12), ('b', 4), ('d', 7), ('h', 6), ('j', 3)]

3.举例,leetcode中的一道题

937.重新排列日志

你有一个日志数组 logs。每条日志都是以空格分隔的字串。

对于每条日志,其第一个字为字母数字标识符。然后,要么:

标识符后面的每个字将仅由小写字母组成,或;

标识符后面的每个字将仅由数字组成。

我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。

将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按内容字母顺序排序,忽略标识符;在内容相同时,按标识符排序。数字日志应该按原来的顺序排列。

返回日志的最终顺序。

示例 :

输入:["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"]

输出:["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]

思路:先将日志数组logs分成两个日志数组,一个存储字母日志,一个存储数字日志,根据题意,需将所有字母日志排在数字日志前面,字母日志按内容字母排序,故仅需对字母日志数组排序,最后返回两个数组想家的结果就OK了。

代码如下:

class Solution(object):
  def reorderLogFiles(self, logs):
    """
    :type logs: List[str]
    :rtype: List[str]
    """
    l1=[]
    l2=[]
    for l in logs:
      if l[-1].isalpha():
        l1.append(l)
      else:
        l2.append(l)
    l1.sort(key=lambda x:(x[x.index(' ')+1:],x[:x.index(' ')]))
    return l1+l2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
我就是这样学习Python中的列表
Jun 02 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
基于python实现语音录入识别代码实例
Jan 17 Python
jupyter notebook清除输出方式
Apr 10 Python
python3中数组逆序输出方法
Dec 01 Python
python 实现逻辑回归
Dec 30 Python
pytorch 使用半精度模型部署的操作
May 24 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
python实现微信小程序用户登录、模板推送
Aug 28 #Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 #Python
django删除表重建的实现方法
Aug 28 #Python
Python Django 前后端分离 API的方法
Aug 28 #Python
django重新生成数据库中的某张表方法
Aug 28 #Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 #Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 #Python
You might like
php递归函数中使用return的注意事项
2014/01/17 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
星球大战与Python之间的那些事
2016/01/07 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Python二元赋值实用技巧解析
2019/10/25 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
建议书的格式
2014/05/12 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
单位同意报考证明
2015/06/17 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python