手记

【金秋打卡】第6天+一窥Py常见高阶函数

课程名称

全能软件测试工程师

课程章节

Python高级函数

课程讲师

大周

课程内容

lambda表达式

可以使用lambda关键字创建小型匿名函数(太复杂的搞不定)。
这个函数返回其两个参数的和:lambda a, b: a+b。Lambda函数可以在任何需要函数对象的地方使用。

  • lambda 是一个关键字
  • 冒号前面是这个函数的参数
  • 冒号后面是这个函数的运算逻辑

map函数

map函数返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。

map(function, iterable, ...)

示例:

# map函数练习 給列表中的每个值加1
case_list1 = [2, 8, 25, 10, 19]

# 1:使用map函数
print(list(map(lambda e:e+1,case_list1)))

# 2:使用for循环
tmp_list = []
for i in case_list1:
    i += 1
    tmp_list.append(i)
print(tmp_list)

# 3:使用函数
def cals_area(r):
    return 3.14 * r * r
result_list = map(cals_area,case_list1)
print(list(result_list))

reduce函数

reduce()函数将两个参数的 function 从左至右积累地应用到 iterable 的条目,以便将该可迭代对象缩减为单一的值。

functools.reduce(function, iterable[, initializer])

例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])是计算((((1+2)+3)+4)+5)的值。 左边的参数 x 是积累值而右边的参数 y 则是来自 iterable 的更新值。 如果存在可选项 initializer,它会被放在参与计算的可迭代对象的条目之前,并在可迭代对象为空时作为默认值。 如果没有给出 initializer 并且 iterable 仅包含一个条目,则将返回第一项。
示例:

# 写法1
from functools import reduce
case_list2 = [1,2,3,4]
def tmp_function(x,y):
    return x + y
result = reduce(tmp_function,case_list2)
print(result)
# 写法2
print(reduce(lambda x,y:x+y,case_list2))

filter函数

filter函数:用 iterable中函数 function 返回True的那些元素,构建一个新的迭代器。

filter(function, iterable)

示例:

# filter()函数
case_list3 = ['a','A','b']
# 只返回小写元素 ['a','b']
print(list(filter(lambda x: x == x.lower(), case_list3)))

课程收获

通过对python常见的高阶函数的学习和练习,已经初步掌握各高阶函数的含义和语法,希望日后中能够经常使用,提高工作效率。

0人推荐
随时随地看视频
慕课网APP