前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3个用于提效的Python函数,建议收藏!!

3个用于提效的Python函数,建议收藏!!

作者头像
用户6888863
发布2020-07-13 14:18:06
6680
发布2020-07-13 14:18:06
举报
文章被收录于专栏:AI篮球与生活AI篮球与生活

Python作为一种编程语言,在人们的日常工作与生活中应用地愈加广泛,有些人将其用来做爬虫、数据分析与可视化,也有不少人用它来做机器学习与深度学习建模预测。为了避免敲打出复杂而又冗长的代码,今天小编就来和大家分享一下Python当中可以提效的三个函数方法,希望大家可以喜欢。

map()

在map()函数中可以另外自定义一个函数作为其中的参数,同时附带上列表或者是数组作为另外一个参数,以此将函数作用在列表中的每一个元素上,

代码语言:javascript
复制
def num_func(x):
    return x**2/2

然后我们将其放入map()函数当中并且作用于列表当中的每一个元素,

代码语言:javascript
复制
data = [1,3,5,7,9,12]
list(map(num_func, data))
# 输出为:[0.5, 4.5, 12.5, 24.5, 40.5, 72.0]

相信读者在日常的实践操作中用for循环的比较多,但是与map()函数相比还是略显复杂与冗长,同时更加简洁的方式就是map和lambda结合,

代码语言:javascript
复制
data = [1,3,5,7,9,12]
result = list(map(lambda x: x**2/2, data))
print(result)
# 输出的结果一样也为:[0.5, 4.5, 12.5, 24.5, 40.5, 72.0]

filter()

从函数名就可以明显的看出,该函数可以帮助我们挑选出那些符合特定条件的元素,当然读者也完全可以使用for循环加if条件筛选来过滤出相应的元素,但上述操作实在太过于繁琐,比方说先定义一个函数

代码语言:javascript
复制
def bigger_than_15(x):
    return x > 15

紧接着将其放置于filter函数当中并且作用于列表中的每一个元素

代码语言:javascript
复制
data = [2, 9, 6, 17, 12, 16, 29, 20, 12, 30]
list(filter(bigger_than_15, data))
# 输出为:[17, 16, 29, 20, 30]

从上述的例子中可以看出,filter()函数将列表中大于15的元素都给筛选出来

reduce()

reduce()函数稍稍与前两者有所不同,map()与filter()函数结果返回的都是一组数据,而reduce()函数返回的则是单个数值,假设我们定义一个函数,将两元素相加,

代码语言:javascript
复制
def add_nums(a, b):
  return a + b

reduce()函数要做的则是遍历列表中的每一个元素做一个累加,具体可以根据下图来理解,

而最后要输出的结果则是70,也就是列表中所有元素的累加得出

代码语言:javascript
复制
from functools import reduce
data = [5, 10, 12, 18, 25]
reduce(add_nums, data)
# 输出结果为:70

在上面例子的基础之上,读者也可以自己举一反三,编写其他函数放置于reduce()当中去。

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

本文分享自 关于数据分析与可视化 微信公众号,前往查看

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

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

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