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类和函数中使用静态变量的方法
May 09 Python
Python计算字符宽度的方法
Jun 14 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python reduce 函数使用详解
Dec 05 Python
python爬取微信公众号文章
Aug 31 Python
python3中property使用方法详解
Apr 23 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python-jwt用户认证食用教学的实现方法
Jan 19 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清除bom示例
2014/03/03 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
PyTorch的torch.cat用法
2020/06/28 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
广州品高软件.net笔面试题目
2012/04/18 面试题
初一家长会邀请函
2014/01/31 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
开发房地产协议书
2014/09/14 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
整改报告格式
2014/11/06 职场文书
岁月神偷观后感
2015/06/11 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers