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 内核编译需要多大空间,编译2.6.28内核出错。。。。空间不足。而/tmp/还有好几G...

编译2.6.28内核出错。。。。空间不足。而/tmp/还有好几G发布时间:2009-01-02 16:56:47来源:红联作者:weixq316今天闲来无事,就去下载了最新的内核--2.6.28来编译安装。。。:0)1放在/usr/src/2.6.28/中编译。。。。。我的/usr还有1G多的空间。…

如何用vi 复制第5行到第10行并粘贴到第12行之后

方法一: 光标放到第五行,输入:y6y光标放到第12行,输入:p方法二:命令行模式下输入:5,10 co 12方法三:延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代光标移到起…

go zap去除程序名称_适用于Zip,Zap和Zoom游戏的Python程序

go zap去除程序名称Write a python program that displays a message as follows for a given number: 编写一个python程序,显示给定数字的消息如下: If it is a multiple of three, display "Zip". 如果是三的倍数,则显示“ Zip…

【智能车Code review】——环岛的判定与补线操作

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 视频讲解 这里是对于代码的讲解视频,大约一个小时,需要的同学可以看看:B站:meeting_01 系列文章 【智能车Code review】…

Python交换两个变量的三种方法

一、借助于第三个变量(很常用) a 5 b 6c 0 c a a b b c print("a%d,b%d"%(a,b))#结果为:a6,b5二、如何不借助第三个变量实现两个变量交换数据呢? a 5 b 6a ab b a-b a a-b print("a%d,b%d"%(a,b))#结果为:a…

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

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

【笔记】VB控件MSComm功能介绍

VB中的MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control&#x…

string charat_Java String charAt()方法与示例

string charat字符串charAt()方法 (String charAt() Method) charAt() method is a String class method in Java, it is used to get the character from specified index from a given string. charAt()方法是Java中的String类方法,用于从给定字符串的指定索引中获…

opencv模板匹配

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

Java程序设计4——集合类

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

Python中的a+=a和a=a+a的区别(认真看完后,我相信你一定会回来感谢我的)

一、先来两段代码! a 100def beyond(num):numnumprint(num)beyond(a)#结果为:200 print(a)#结果为:100a 100def beyond(num):numnumnumprint(num)beyond(a)#结果为:200 print(a)#结果为:100通过这两段代码的结果可以…

安装linux后win7引导程序,安装Windows7+Ubuntu+CentOS三系统之后的引导问题

依次安装了Windows7、Ubuntu12.04、CentOS6.3系统后,开机引导项只有CentOS和Other(即Windows7)两个选项,无法进入Ubuntu系统,所以利用Ubuntu的LiveCD光盘启动后进行如下操作对grub进行修复,步骤如下:启动Live CD&#…

Web之神php

我开始学习做网页的时候用的是asp,后来转行用php。以前只知道php很好学,并且很方便。我学习php的时候关于php的书种类很少好像那时候我在当当上面只看到3本,跟现在没法比,现在大家再学习php就简单多了,那么多书那么多资料。 现在我…

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

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

string concat_Java String concat()方法与示例

string concat字符串concat()方法 (String concat() Method) concat() is a String method in Java and it is used to concatenate (add) a given string to the string. It returns a concatenated string. concat()是Java中的String方法,用于将给定的字符串连接(…

第五章 染料结构对染色性能的影响单元测验

‎1,引起染料结构发生变化的因素有() 染料商品添加剂及方法。 染料合成中间体选择及合成条件。 染色助剂。 染色温度。 2,染料结构影响染色()性能 染色热力学性能。 染色牢度。 染色动力学性能。 染色匀染性能。 3,染料精制除杂时,染液中加入的溶剂应该具有()性能 …

sql2008怎么转移到sql2005

一般来说,最新版本会向下兼容,如果旧版本想用新版本则不行。 但是还是有一些办法的,可以参考一下。-- 对象资源管理器(没有的话按F8) 连接到你的2008实例--右键你要降级的数据库-- 任务-- 生成脚本-- 在随后出现的脚本中, 单击"下一步&q…

字符搜索正则表达式语法详解

工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。明天在这里和大家一起学习一下字符搜索 作为一个术技,时常会到碰正则表达式相干的西东,很多时候忙着赶进度,都是在网上找一个可以决解的正则表达式,或是换另外…

gRPC之grpc resolver

1、grpc resolver 当我们的服务刚刚成型时,可能一个服务只有一台实例,这时候client要建立grpc连接很简单,只需要指定server 的ip就可以了。但是,当服务成熟了,业务量大了,这个时候,一个实例就…

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

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