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生成器(Generator)详解
Apr 13 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
python获取中文字符串长度的方法
Nov 14 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
python return逻辑判断表达式实现解析
Dec 02 Python
python实现拼图小游戏
Feb 22 Python
python的sys.path模块路径添加方式
Mar 09 Python
浅析Python __name__ 是什么
Jul 07 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
OpenCV-Python直方图均衡化实现图像去雾
Jun 07 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
基于php split()函数的用法详解
2013/06/05 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
python循环监控远程端口的方法
2015/03/14 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python实现flappy bird小游戏
2018/12/24 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python中os包的用法
2020/06/01 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
行政专员的岗位职责
2014/03/10 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS