Python匿名函数---排序

一、列表的排序

nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.sort()#默认从小到大排序
nums#结果为:[1, 2, 3, 4, 4, 5, 5, 7, 7, 9, 44, 56, 87]
nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.sort(reverse=True)#从大到小排序
nums#结果为:[87, 56, 44, 9, 7, 7, 5, 5, 4, 4, 3, 2, 1]
nums = [1,2,3,5,4,7,87,4,9,56,44,7,5]
nums.reverse()#反转
nums#结果为:[5, 7, 44, 56, 9, 4, 87, 7, 4, 5, 3, 2, 1]

二、字典排序

如果对字典进行排序需要指出按哪个key排序,sort方法里面的参数为key=lambda x:x['age']
第一个x,此时会为infors列表中的每个键值对,冒号后面的x[‘age’]表示通过age这个键(key)所对应的值(value)所排序,说白了就是按照age对应的值所排序(sort默认从小到大排序)。sort的有关参数可以参照上面的例子进行不同的排序方式进行排序。
当然,这里也不仅仅局限于age这个键的排序,也可以通过name这个键进行排序,只不过name对应的值是字符串,最终的结果会通过ASCII码进行比较排序输出。

infors = [{"name":"jiaju","age":32},{"name":"beyond","age":21},{"name":"shirong","age":15},{"name":"guanzhong","age":40}]
infors.sort(key=lambda x:x['age'])
infors#结果为:
'''
[{'age': 15, 'name': 'shirong'},{'age': 21, 'name': 'beyond'},{'age': 32, 'name': 'jiaju'},{'age': 40, 'name': 'guanzhong'}]
'''

三、匿名函数当参数使用

当你想实现两个数相加,又想实现两个数相乘,还行实现两个数相减等一系列操作时,当然你可以多定义几个函数即可。这里使用匿名函数来实现,只需要改变lambda中的表达式即可通过一个函数实现用户想要的操作,即匿名函数充当实参。

def beyond(a,b,func):result = func(a,b)return resultnum1 = beyond(21,22,lambda x,y:x+y)
num2 = beyond(21,22,lambda x,y:x*y)
num3 = beyond(21,22,lambda x,y:x-y)print(num1)#结果为:43
print(num2)#结果为:462
print(num3)#结果为:-1

四、验证下Python是动态语言

所谓的静态语言就是需要先确定功能再去执行
而动态语言是当程序写完之后,不确定加了什么东西,真正运行的那一刹那才确定你要执行什么,这就是动态语言。
C是静态语言,程序当前需要调用什么是很明确的,编译什么也都确定,在某个地方需要调用什么也是明确的,已经写好的。
而Python是动态语言,如果没有出现语法错误,将来在正真执行的时候,当什么时候执行,什么时候才会定义某些东西。

def beyond(a,b,func):result = func(a,b)return resultfunc_new = eval(input("please input an anonymous function:"))#输入内容为:please input an anonymous function:lambda x,y:x+y
num = beyond(21,22,func_new)
print(num)#结果为:43

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下怎么查kill某个进程,Linux下查询进程PS或者杀死进程kill的小技巧

假设我们要kill掉tomcat:那么我们首先需要tomcat的进程号pid:ps -aux | grep tomcat记下tomcat的PID后,执行:kill PID(tomcat)好了,就到这里....路人甲:小的们,灭了这个欺骗人民情感的家伙&…

opencv模板匹配

matchTemplate函数参数 模板匹配是通过模板在采集到的原图像进行滑动寻找与模板图像相似的目标。模板匹配不是基于直方图的方式,而是基于图像的灰度匹配。 6种匹配度量方法: 平方差匹配法CV_TM_SQDIFF 归一化平方差匹配法CV_TM_SQDIFF_NORMED 相关匹配…

Java程序设计4——集合类

1 JAVA集合概述 Java集合封装了一系列数据结构比如链表、二叉树、栈、队列等,然后提供了针对这些数据结构的一系列算法比如查找、排序、替换,使编程难度大大降低。(这句话有可能是非法…

python与tensorflow知识点截图集锦(持续囤积)

目录前言conda环境管理python语法【1】语言属性【2】代码缩进问题【3】input和output函数与print函数【4】关键字与简单数据类型与简单运算符【5】利用缩进体现逻辑关系【6】数据结构:列表与元组【7】数据结构:字典【8】数据结构:集合【8】基…

linux测试固态硬盘读写速度,在 Linux 上检测 IDE/SATA SSD 硬盘的传输速度

你知道你的硬盘在 Linux 下传输有多快吗?不打开电脑的机箱或者机柜,你知道它运行在 SATA I (150 MB/s) 、 SATA II (300 MB/s) 还是 SATA III (6.0Gb/s) 呢?你能够使用 hdparm 和 dd 命令来检测你的硬盘速度。它为各种硬盘的 ioctls 提供了命…

Opencv——批量处理同一文件夹下的图片(解决savedfilename = dest + filenames[i].substr(len)问题)

文章目录前言一、完整代码二、实现效果前言 第一份代码实现了批量修改同一文件夹下图片的尺寸,有其他需求时仅需修改处理部分的代码以及文件夹路径。 第二份代码实现了批量截取同一文件夹下每张图片的ROI区域作为结果保存,注意截取后按下enter键才会跳到…

处理文件、摄像头和图形用户界面

1、基本I/O脚本 1.1 读/写图像文件 import numpy import cv2#利用二维Numpy数组简单创建一个黑色的正方形图像 img numpy.zeros((3,3),dtypenumpy.uint8) img #结果为:array([[0, 0, 0],[0, 0, 0],[0, 0, 0]], dtypeuint8)img.shape#结果为:(3, 3)###…

linux桌面天气,Ubuntu 14.10中安装和配置天气应用

对于操作系统平台而言,有各种小插件功能方便用户日常应用。在Ubuntu桌面中提供天气信息的功能,可以使用Unity Dash和桌面应用来获得相关信息,比如Typhoon。但对于用户而言,可以提供快速查询天气状况和温度数据,并且只需…

linux批处理操作系统_批处理操作系统

linux批处理操作系统批处理操作系统 (Batch Processing Operating System) When we are working in an environment there is a restriction of making use of computer resources effectively and improvement in the programmers output. When we are working with tapes a l…

STL容器及其简单应用(stack、priority_queue、vector、deuqe、list、map/multimap、set/multiset)

目录前言【1】stack操作以及应用stack的几个核心接口利用stack完成进制转换【2】priority_queue操作以及应用priority_queue的几个核心接口利用priority_queue完成合并果子问题【3】vector操作以及应用vector的几个核心接口利用vector完成随机排序【4】deuqe(双向队列)操作以及…

已知一个掺杂了多个数字字符的中文名拼音,去掉所有数字字符之后,形式为“名”+空格+“姓”;并且名和姓的首字母大写,其他小写,要求输出姓名全拼,且全为小写。(后附详细样例说明)

已知一个掺杂了多个数字字符的中文名拼音,去掉所有数字字符之后,形式为“名”空格“姓”;并且名和姓的首字母大写,其他小写,要求输出姓名全拼,且全为小写。(后附详细样例说明) 【输入…

在一个风景秀丽的小镇,一天早上,有N名晨跑爱好者(编号1~N)沿着优雅的江边景观道朝同一方向进行晨跑

【问题描述】 在一个风景秀丽的小镇,一天早上,有N名晨跑爱好者(编号1~N)沿着优雅的江边景观道朝同一方向进行晨跑,第i名跑者从位置si处起跑,且其速度为Vi。换句话说,对所有的实数t≥0,在时刻t时第i名跑者的…

linux内核测试,Linux内核测试的生命周期

内核持续集成(CKI)项目旨在防止错误进入 Linux 内核。在 Linux 内核的持续集成测试 一文中,我介绍了 内核持续集成Continuous Kernel Integration(CKI)项目及其使命:改变内核开发人员和维护人员的工作方式。本文深入探讨了该项目的某些技术方面&#xff…

【视觉项目】【day3】8.22号实验记录(利用canny检测之后的来进行模板匹配)

【day3】8.22号实验记录(几乎没干正事的一天,利用canny检测之后的来进行模板匹配) 今天没搞代码,主要是问研究生学长工业摄像头的接法的,学长也不知道,明天问问老师。。。 晚上搞了一下canny之后的模板匹配…

linux dd 大文件下载,Linux dd+grep 大文件二分查找

Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。参数说明(dd --help)Usage: dd [OPERAND]...or: dd OPTIONCopy a file, converting and formatting according to th…

如何让没有安装网页中所需字体的用户也能得到一致的浏览效果【转】

今天给大家谈一个关于字体的话题,我们在做项目的过程中会遇到一些在psd中的字体在自己的电脑中没有安装,或者是一些特殊的文字,通常的做法是把它切成图片,但是如果这个站是多个语言的,那我们是不是把每个语言的都切一张图片呢&…

【视觉项目】【day4】8.24号实验记录(消除瓶子内部“边缘”)

思路分析以及代码 思路1:使用findContours函数,设置轮廓为最外部RETR_EXTERNAL,结果发现结果仍然是所有轮廓。 思路2:先二值化,然后进行闭操作,然后canny,得到的轮廓确实比之前少很多&#xff…

国产操作系统和linux 之间的关系,为何国产系统大多基于开源Linux?操作系统从0做起到底有多难?...

今年貌似是国产操作系统的“爆发”之年,除了老牌的银河麒麟、中标麒麟、深度之外,中兴近日发布了自己的“新支点”,华为也公开了自研的操作系统“鸿蒙”。纵观这些国产操作系统,大多基于开源的Linux。那么为什么我们不可以从0开始…

js 第四课

正则表达式:RegExp对象 正则表达式描述一个字符模式的对象,或者说用某种模式去匹配一类字符串的一个公式。 1.创建 可以用RegExp构造函数和直接量两种方式。正则表达式直接量被包含在一对"/"中. 1 var partern1 RegExp(\\d*); 2 …

解析法实现一元线性回归、多元线性回归以及数据模型可视化操作

目录【1】解析法实现一元线性回归python列表实现利用Numpy实现利用TensorFlow实现数据和模型可视化【2】解析法实现多元线性回归利用Numpy实现需要用到的NumPy数组运算函数数据和模型可视化绘制空间点集:绘制空间平面图:绘制线框图并且与散点图对比&…