python学习-Day14-高阶函数

本文深入探讨Python中的高阶函数应用,包括map、reduce及filter等函数的使用方法,并介绍如何利用匿名函数提高编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高阶函数:把函数当作参数进行传递

map()函数:第一个参数为自定义函数,第二个参数为一个可迭代对象

lt = (1, 2, 3, 4, 5)
def f2(x):
    return x*x
m1 = map(f2, lt)
print (type(m1))
print (m1)
<type 'list'>
[1, 4, 9, 16, 25]

reduce()函数:传入的函数必须接受两个元素;把可迭代对象的前两个参数作为函数的实参,传入到f函数中;把每次f运算结果作为第一个实参,可迭代对象的下一个元素作为另一个实参传入函数f中,以此类推最终得到结果
def f(x, y):
    return x + y
print(reduce(f, [1, 2, 3, 4, 5], 10))
25

filter函数:每次把可迭代对象的元素传入进去,如果返回为true,则保留该元素;如果返回为false则不保留该元素。
a = [1, 2, 3, 4, 5]
def is_old(x):
    return x%2 == 1
print(is_old(5))			\\这里返回结果来判断是否保留元素
print(filter(is_old, a))
True
[1, 3, 5]


在知道某个方法或变量则可以进行查询源码的方式,来查看使用方法。eg:help(sorted)
sorted()函数:对字典进行排序。
mm = dict(a=1, b=10, c=3, d=9)
print(mm)
print(dir(mm))      \\查看字典相关的方法
for i in mm:
    print i
for j in mm.iteritems():
    print(j)
test = sorted(mm.iteritems(), key=lambda d: d[1])
print test
{'a': 1, 'c': 3, 'b': 10, 'd': 9}
a
c
b
d
('a', 1)
('c', 3)
('b', 10)
('d', 9)
[('a', 1), ('c', 3), ('d', 9), ('b', 10)]

留疑:如果以key为顺序排序呢,即结果为:[('a', 1),('b', 10),('c', 3),('d',9)]呢?

匿名函数:没有名字的函数,用来快速定义函数。

def sum(x, y):
    return x + y
print sum(7, 8)
			\\这里使用两种不同的方法来定义加法的函数
m = lambda x, y: x+y		
print(m(4, 5))
15
9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值