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对字典进行排序实例
Sep 25 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
Nov 02 Python
Python实现的简单计算器功能详解
Aug 25 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python生成随机红包的实例写法
Sep 02 Python
Python 获取项目根路径的代码
Sep 27 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
Python析构函数__del__定义原理解析
Nov 20 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 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 MessagePack介绍
2013/10/06 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python手机号码归属地查询代码
2016/05/04 Python
python rsa 加密解密
2017/03/20 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Python中生成ndarray实例讲解
2021/02/22 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
js实现弹框效果
2021/03/24 Javascript
会计专业个人求职信范文
2014/01/08 职场文书
实习老师离校感言
2014/02/03 职场文书
宿舍标语大全
2014/06/19 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书