python进阶(1)Lambda表达式「建议收藏」

python进阶(1)Lambda表达式「建议收藏」Lambda表达式lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数语法函数名=lambda参数:返回值注意点1.函数的参数可以有多个,多个参数之间用逗号隔

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Lambda表达式

lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数
 

语法

函数名 = lambda 参数:返回值
 

注意点

  • 1.函数的参数可以有多个,多个参数之间用逗号隔开

  • 2.匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据

  • 3.返回值和正常的函数一样,可以是任意数据类型,返回值的时候只能返回一个不能返回多个

def func(n):
    return n**n
print(func(4))
f = lambda x: x**x
print(f(4))
结果:
>>> 256
>>> 256

 

三大基础函数

 

filter(function, iterable)

对可迭代对象进行过滤,参数function是一个函数,参数iterable是可迭代对象。filter()函数调用时iterable会遍历,它的元素被逐一传入funciton函数,function函数返回布尔值。在funciton函数中编写过滤条件,如果为true则保留,为false则被过滤掉

number_list = range(1, 11)
number_filter = filter(lambda it: it % 2 == 0, number_list)
print(list(number_filter))
>>> [2, 4, 6, 8, 10]

 

map(function, iterable)

对可迭代对象的元素进行变换,参数使用同上

# 将所有元素替换成小写
users = ['jack', 'Tom', 'Tony', 'Alice']
users_map = map(lambda u: u.lower(), users)  
print(list(users_map))
>>> ['jack', 'tom', 'tony', 'alice']

# 将所有首字母为T的元素替换成小写
# 先过滤再替换
users = ['jack', 'Tom', 'Tony', 'Alice']
users_map = map(lambda u: u.lower(), filter(lambda u: u.startswith('T'), users))
print(list(users_map))
>>> ['tom', 'tony']

 

reduce(function, iterable[, initializer])

参数funciton是聚合操作函数,iterable是可迭代对象,initializer是初始值,可以省略
​reduce()函数是将多个数据按照指定的算法积累叠加起来

"""
reduce的作用是先把列表中的前俩个元素取出计算出一个值然后临时保存着,
接下来用这个临时保存的值和列表中第三个元素进行计算,求出一个新的值将最开始
临时保存的值覆盖掉,然后在用这个新的临时值和列表中第四个元素计算.依次类推
"""
from functools import reduce
a = [1, 2, 3, 4]
a_reduce = reduce(lambda x, y: x*10 + y, a)
print(a_reduce)
>>> 1234
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165501.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月30日 上午11:00
下一篇 2022年7月30日 上午11:16


相关推荐

  • bzero和memset哪个更耗时_malloc_trim

    bzero和memset哪个更耗时_malloc_trim 关于字符数组的初始化,在项目的压力测试中,发现性能明显下降,变怀疑在程序中的若干临时字符数组的初始化(使用bzero)身上。于是修改为首个字符置零的方式而非全部置零的方式初始化,响应得到明显的提升。原来在mp3检索的每一条结果都要进行bzero对临时数组初始化,每一个请求需要30次的bzero对临时数组的置零。于是想到了,在非必要的情况下,只对临时数组的第一个(或前几个)字符置零的初始化

    2022年10月10日
    5
  • 成功解决Qt图标背景颜色透明问题

    成功解决Qt图标背景颜色透明问题一直困扰的一个问题 一个图标或是一张图片如何适应背景 或者说如何设置背景为透明色 就像下面这三张图标一样 白色背景 不太好看 作为一个小白 我从百度图片上获取了它们 然后就用起来了 然后经过一番的网上搜索我发现一个关键词 矢量图 矢量图就是那些扣掉背景的图 所以从百度图片上找到的图片需要经过 ps 类的软件来抠图才能使用 听朋友说 ps 的魔棒工具就可以解决 但是我还没有下载 ps 也不太会呢 好吧 我承认我还很懒 所以既然知道了是矢量图 那网上应该不少吧 so 人生苦短 我用 Iconfont 阿里巴巴矢量图

    2026年3月18日
    2
  • gcc编译器如何使用_gcc编译器用什么语言写的

    gcc编译器如何使用_gcc编译器用什么语言写的一、gcc编译流程GCC编译器在编译一份C代码的时候,需要经过以下4个步骤:预处理(preprocessing):对.c源文件进行预处理,生成.i文件。编译(compilation):对

    2022年8月4日
    5
  • 四个好看的CSS样式表格

    四个好看的CSS样式表格

    2021年11月13日
    89
  • 电脑很大,电脑内存很大为什么还是很卡「建议收藏」

    电脑很大,电脑内存很大为什么还是很卡「建议收藏」2019-10-09阅读(121)”电脑反应慢原因:1.电脑反应太慢,第一我们打开任务管理器,检查CPU资源的使用,若某个程序的CPU资源占用一直比较高(比如占到50%以上),系统速度就会明显变慢。因一般情况下,除大型游戏程序之外,应用程序在运行过程中只是瞬间占用较高,而不会一直持续2019-10-09阅读(132)一.清理垃圾在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文…

    2022年5月5日
    335
  • 零代码配置多Agent,腾讯云正式发布“智能体开发平台”

    零代码配置多Agent,腾讯云正式发布“智能体开发平台”

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号