前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数(二)

函数(二)

作者头像
陆勤_数据人网
发布2020-09-22 10:26:18
3680
发布2020-09-22 10:26:18
举报

一、函数参数

1.定义函数的参数:固定参数/可变参数

定义函数时,参数可以有两种;一种是在参数表中写明参数名key的参数,固定了顺序和数量,如:

• def func(key1, key2, key3…):

• def func(key1, key2=value2…)

另一种是定义时还不知道会有多少参数传入的可变参数,如:

• def func(*args): #不带key的多个无名参数

• def func(**kwargs): #key=val形式的多个命名参数

2. 调用函数的参数:位置参数/关键字参数

调用函数的时候,可以传进两种参数;一种是没有名字的位置参数,如func(arg1,arg2, arg3…),会按照前后顺序对应到函数参数。

另一种是带key的关键字参数,如func(key1=arg1,key2=arg2…),由于指定了key,可不按顺序对应。如果混用,所有位置参数必在前,关键字参数必在后。

3.调用函数的参数:解包

对于有多个参数的函数,可以单个序列或字典“解包”对应到每个参数,如:func(*aseq):序列解包对应到每个位置参数,func(**adict):字典解包对应到每个关键字参数。

二、函数式编程

相对于复杂算法步骤的编程范式,函数式编程通过表达式和函数的操作来定义函数,强调对结果的描述,而不是过程,不会有副作用(影响函数之外的数据,如全局变量),函数可以是变量的值,函数可以作为参数传递,函数可以作为返回值,经常使用递归定义,而不是迭代和循环。

三、map函数

有时候,需要对列表中每个元素做一个相同的处理,得到新列表,例如所有数据乘以3 ;例如所有字符串转换为整数;例如两个列表对应值相加。map(func, list1, list2….),函数func有几个参数,后面就跟几个列表。

四、函数表达式:lambda

• 有时候,函数只用一次,其名称也就不重要,可以无需费神去def一个

• Lambda表达式可以返回一个匿名函数:lambda <参数表>:<表达式>

五、函数作为参数:reduce函数

reduce函数对列表进行滚动式处理,最终得到一个值,例如,累加,累乘等等。reduce(func, list) 相当于:func(func(func(list1,list2),list3),list4)....reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])相当于:((((1+2)+3)+4)+5)。

六、函数作为参数:filter函数

filter函数对数据集中的对象逐个调用func,如果结果为真,则保留这个对象;否则抛弃这个对象。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档