python lambda表达式_Python进阶

python lambda表达式_Python进阶Lambda表达式lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数语法函数名=lambda参数:返回值注意点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/165083.html原文链接:https://javaforall.net

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

相关推荐

  • bat 延迟执行后面命令_bat命令延时10秒启动程序

    bat 延迟执行后面命令_bat命令延时10秒启动程序1、使用WScirpt的sleep功能,精度0.001秒创建vbs延迟文件,然后在批处理文件中调用,使用WScript的sleep函数,实现sleep的效果。实战:1)创建文件sleep.vbs:sleep.vbs内容如下:WScript.sleep5000。2)调用vbsstart/waitsleep.vbs1、使用choice命令choice/t10/cyn/n/dn/m(10秒后打开)CHOICE[/Cchoices][/.

    2022年9月23日
  • linux安装tomcat7.0

    linux安装tomcat7.0本文章将详细讲解如何在linux系统中安装tomcat一、登录tomcat官网,下载tomcat压缩包。地址:http://tomcat.apache.org/  ,找到对应下载版本。这里以tomcat7.0为例。将压缩包下载完成后,利用sftp工具将包上传至linux系统,我的路径为/usr/local/java二、利用tar命令解压tomcat:tar-zxvf…

    2022年6月2日
  • 织梦网站后台登录密码重置

    织梦网站后台登录密码重置

    2022年3月8日
  • 史上最简单的 MyBatis 教程(一)

    史上最简单的 MyBatis 教程(一)1简介MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。MyBatis应用程序大都使用SqlSessionFac

    2022年10月26日
  • dede后台登陆后一片空白的解决办法汇总

    dede后台登陆后一片空白的解决办法汇总

    2021年9月19日
  • mysql executereader_ExecuteReader

    mysql executereader_ExecuteReader最近在做winform的编程,想到一真没有使用过ExecuteReader。可能以前以后它的用户不大,或者不大好用,故没有用过。今天在这里将学习记录写下来,供读者参考:1、MSDN上说:SendstheCommandTexttotheConnectionandbuildsaSqlDataReader.(这句话就不翻译了)2、实例片段:[C#]publicvoidCreateM…

    2022年6月20日

发表回复

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

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