函数式编程lambda式

前言

函数式编程会让程序更加简洁,更有可读性,

三个特性

lambda函数有如下特性:

  1. lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。

  2. lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。

  3. lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。

map

list_x = [1,2,3,4,5,6,7,8,9,10]

def f1(x):
    return x * x

ret = map(f1, list_x)
print(list(ret))         # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

list_y = [1,2,3,4,5,6,7,8,9,10]

ret = map(lambda x, y: x * x + y, list_x, list_y)
print(list(ret))         # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

reduce

reduce会把前两个数字相加,把得到的新数字再加后面的数字,
有一个初始值参数

# reduce

from functools import reduce

list_x = [1,2,3,4]

r = reduce(lambda x,y:x+y, list_x, 10)
print(r)      # 20

filter

filter有过滤功能

# filter

list_x = [1, 0, 1, 0, 1]

r = filter(lambda x: True if x == 1 else False, list_x)
r = filter(lambda x: x, list_x)
print(list(r))     # [1, 1, 1]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kot...
    胡奚冰阅读 1,422评论 0赞 6
  • Java 8 lambda 表达式10个示例 Java 8 发布于4年前,日期是2014年3月18日,这次开创性的...
    认真期待阅读 1,495评论 2赞 6
  • 原文链接:https://github.com/EasyKotlin 值就是函数,函数就是值。所有函数都消费函数,...
    JackChen1024阅读 6,463评论 1赞 17
  • 今年的中秋节是最“冷”的!商贸城还是格外的热闹的!一上午在忙店里得生意,姨和妈妈邀请我们去吃饭,感谢你们的盛情...
    健康顾问飞雁阅读 237评论 0赞 0
  • 重新踏上这条泥泞的小路,不知何时,凛冽的北风中竟掺杂着几片雪花,纷纷扬扬,调皮地左右飞舞。我下意识地将冻得发红的手...
    槛内人f阅读 181评论 0赞 3

友情链接更多精彩内容