Python lambda

Python lambda,第1张

概述Python关于lambda表达式的小知识点 本篇内容 没有 对于lambda表达式的 全部介绍,只涉及基础了理解,和浅显的实例。 一 基本的介绍 def f(x): return x*xf = lambda x: x*xprint(f(5)) 上述两个代码的效果是相同的。 f 是函数的名字,lambda标志着 f 是一个 函数,冒号左边是输入量,右边是输出量。 如果遇到 Python关于lambda表达式的小知识点

本篇内容 没有 对于lambda表达式的 全部介绍,只涉及基础了理解,和浅显的实例。

一 基本的介绍
def f(x):    return x*xf = lambda x: x*xprint(f(5))

上述两个代码的效果是相同的。

f 是函数的名字,lambda标志着 f 是一个 函数,冒号左边是输入量,右边是输出量。

如果遇到两个变量,例如 x 和 y ,那么:

def f(x):    return x * yf = lambda x,y:x*yprint(f(4,5))

输出是9。

 

二 对于排序很方便

lambda 对于排序很方便。

例如,你有个csv文件,名字叫做" countrIEs.csv ":

http://www.wikIData.org/entity/Q114,肯尼亚,非洲,奈洛比,44353691http://www.wikIData.org/entity/Q115,埃塞俄比亚,亚的斯亚贝巴,96958732http://www.wikIData.org/entity/Q117,迦納,阿克拉,28308301http://www.wikIData.org/entity/Q142,法国,欧洲,巴黎,66628000http://www.wikIData.org/entity/Q145,英国,倫敦,65102385http://www.wikIData.org/entity/Q148,中华人民共和国,亚洲,北京市,1409517397http://www.wikIData.org/entity/Q155,巴西,南美洲,巴西利亚,200361925http://www.wikIData.org/entity/Q159,俄罗斯,莫斯科,146804372http://www.wikIData.org/entity/Q16,加拿大,北美洲,渥太華,35702707http://www.wikIData.org/entity/Q17,日本,東京都,127110047

然后使用lambda对它进行处理,首先读取文件,将文件中的内容存入变量countires:

"""开始读取文件"""countrIEs = [] # 新建一个空的List,为了存储file = open("countrIEs.csv","r")for line in file:    line = line.strip() # 将前后多余空格给删掉    arr = line.split(",") # 根据逗号,将内容区分开    name = arr[1] # 提取国家    capt = arr[3] # 提取首都    popu = int(arr[4]) # 提取人口数量,不要忘记转int型    countrIEs.append((name,capt,popu))"""文件已经成功读取"""

可以打印出来,看看效果:

for country in countrIEs:    print(country)

结果应该是根据原文件的顺序来打印的。

 

如果想要顺序打印,可以在打印之前,加入" countrIEs.sort() ",这是python自带的函数。

 

如果根据你自己的喜好进行排序,可以使用使用 " countrIEs.sort(key =____) ",其中____是你自定义的函数,根据return排序。

所以,你可以这样定义____:

def get_popu(country):    return country[2]

总结一下,就是:

"""文件读取完毕"""def get_popu(country):        return country[2] # 选取人口countrIEs.sort(key=get_popu)"""开始打印"""

不过,根据刚才学的,你可以这么写,舒服多了:

countrIEs.sort(key=lambda country:country[2])

 

三 复合函数

如果有一个 f(x) = ax2+bx+c ,如果设计函数,那么f(a,b,c,x),这个看着很费力,要简化。

第一种可能:

def foo(a,c):    return lambda x: a*x*x + b*x + cf = foo(1,-1,2)print(f(5))# output: 22

如果再一次简化:

def foo(a,c):    return lambda x: a*x*x + b*x + cprint( foo(1,2)(5) )# output: 22

 

以上内容是对如下视频整理,没有进行严格编译,此博文仅作记录:up主:正月点灯笼

总结

以上是内存溢出为你收集整理的Python lambda全部内容,希望文章能够帮你解决Python lambda所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存