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 学习笔记
Dec 27 Python
使用PYTHON创建XML文档
Mar 01 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
python模块导入的细节详解
Dec 10 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
Python调用Redis的示例代码
Nov 24 Python
Python之Sklearn使用入门教程
Feb 19 Python
python pyg2plot的原理知识点总结
Feb 28 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
Python数据结构之图的应用示例
2018/05/11 Python
python中pip的安装与使用教程
2018/08/10 Python
python常用排序算法的实现代码
2019/11/08 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
巴西在线鞋店:Shoestock
2017/10/28 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
工程业务员工作职责
2013/12/07 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
大学毕业感言50字
2014/02/07 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python