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/165167.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓项目中so库选择(ndk abiFilters设置,armeabi,armeabi-v7a,arm64-v8a)[通俗易懂]

    安卓项目中so库选择(ndk abiFilters设置,armeabi,armeabi-v7a,arm64-v8a)[通俗易懂]背景Android系统本质是一个经过改造的Linux系统,so库是Linux系统上使用的共享库(类似windows上的dll)。最早,Android系统只支持ARMv5的CPU构架,随着Android系统的发展,又加入了ARMv7(2010),x86(2011),MIPS(2012),ARMv8,MIPS64和x86_64(2014)。每一种CPU构…

    2022年5月11日
    37
  • 软件著作权登记申请_著作权包括哪些

    软件著作权登记申请_著作权包括哪些写在前面:为什么我要自己搞软件著作权?因为有需要,所以要搞x宝上找一找,30天可以搞定,只要收费400。何苦自己弄呢?一个字:穷+图个心安精华如下:单人申请材料申请表(单面打印,第3页签名,第4页手写材料页数)源码文档(单面打印)软件设计文档或者使用说明文档(单面打印)个人身份证复印件(正反面都要复印)文章目录Step1:官网注册Step2:填写申请表Step3:准备说明书Step4:准备源程序Step5:检查常见错误Step6:各种情况所需材料清单列表(

    2022年9月22日
    0
  • sed与awk的使用

    sed与awk的使用

    2021年5月31日
    90
  • jboss安装与配置_微信最新版下载并安装

    jboss安装与配置_微信最新版下载并安装jboss有开源和商业两个版本,他们区别如下:JBossAS开源社区版本,发布比较频繁。JBoss7,先后发布了7.0.0,7.0.1,7.0.2,7.1.0,7.1.1,7.1.2,7.1.3,7.2.0,其中7.1.1比较经典,7.2.0是JBossEAP6.1的基础,但7.1.2,7.1.3,7.2.0只是源代码打了Tag,并没提供开放下载。JBossEAP(EnterpriseApplicationPlatform)在开源版本上构建的企业版本,目

    2022年10月3日
    0
  • 运维堡垒机是什么_堡垒机一般怎么部署

    运维堡垒机是什么_堡垒机一般怎么部署在运维安全中,数据安全是重中之重,运维人员常常通过运维堡垒机进行服务器的日常维护工作,保证数据安全不受威胁。那么市面上的主流运维堡垒机都有哪些主要功能呢?1、单点登录功能堡垒机支持对X11、linux、unix、数据库、网络设备、安全设备等一系列授权账号进行密码的自动化周期更改,简化密码管理,让使用者无需记忆众多系统密码,实现与用户授权管理的无缝连接,这样可以通过对用户、角色、行为和资源的授权…

    2025年6月7日
    0
  • facebook录制本人视频_机器人视频

    facebook录制本人视频_机器人视频Facebook让机器人“观看”上万次视频后,学会了绕道走路

    2022年4月22日
    34

发表回复

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

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