day7部分函数

递归函数

在函数内部调用自身

def result_n(n):
    if n==1 or n==2:
        return 1
    else:
        result=result_n(n-1)+result_n(n-2)
    return result
print(result_n(10))

#55

匿名函数(lambda)

  • 格式:
lambda para1,para2,...paran:expression using paras
f= lambda a,b,c:a+b+c
print(f(1,2,3))

#6

高阶函数

高阶函数:把一个函数名,以实参的形式传给某个函数的形参,则称这个函数为高阶函数

def add(a,b,c):
    return c(a)+c(b)
def change(a):
    return -a
print(add(4,5,change))

#-9

filter 函数

  • 筛选函数:过滤掉序列中不符合函数条件的元素。当序列中有需要保留的元素可以用某些函数描述时就可以使用filter()函数

调用格式:

  • function 可以是自定义函数,也可以是匿名函数 (返回值要求为bool)
  • sequence 列表,元组,字符串
filter(function,sequence)
  • 去掉列表中开头为c或者结尾为ty的
li=['city',"univercity",'age',"college"]
f=filter(lambda sr:not sr.endswith("ty") and not sr.startswith("c"),li)
print(list(f))

#['age']

map 映射

功能

  • 求一个序列或者多个序列进行函数映射后的值。(用list强转)

格式

  • map(function,iterable1,iterable2)
    • function的参数可以不止一个
x=[1,2,3,4,5]
y=[2,3,4,5,6]
a=map(lambda x,y:x*y+2 ,x,y)
print(list(a))

#[4, 8, 14, 22, 32]

reduce 函数

  • 功能及导入:

    • 对一个序列进行压缩,返回一个value(即按照顺序把前两个元素进行函数运算后替换原两个元素形成新序列然后重复直到剩下一个值作为value)

    • python2中,reduce()是内置函数,而现在python3中,它被移植到了functools模块中

    • 导入:from function import reduce

  • 格式:

    • reduce(function,iterable,[,initial])
    • function必须传两个参数
    • iterable为列表或者元组
    • 如果不传递initial 则按列表顺序否则将initial放在第一位
from functools import reduce
li=[1,2,3,4,5,6,7,8,9]
result=reduce(lambda x,y:x+y ,li)
print(result)

#45

apply

功能:

  • pandas中,应用对象为pandas中的DataFrame或者Series
  • 直接对DataFrame或者Series应用函数
  • 对pandas中groupby之后的聚合对象应用apply

zip

功能

  • 参数为两个可迭代对象,按照序列将对应的元素一一对应打包成元组作为元素生成新的对象
    • 长度不一时以长度短的对象为基准
  • 注:’\*'操作符,作用与zip()相反,用于分离被zip()压缩的对象

格式

zip(iterable1,iterable2,...)
  • iterable为其中参数,为可迭代的对象(字符串,列表,元组,字典(取key忽略value))
li=[5,4,3,2,1]
dic={'a':1,'b':2,'c':3,'d':4,'e':5}
a=zip(li,dic)
for i in a:
    print(i,end=" ")

#(5, 'a') (4, 'b') (3, 'c') (2, 'd') (1, 'e')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值