渔歌子,句容天气,揭阳招聘网-步步高代理消息,手机走进世界,全球移动行业分析

频道:新闻世界 日期: 浏览:113

在编程语言中,高阶函数指的是承受函数作为输入或输出的函数。

map概述

python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable)。需求传入一个函数,这个函数可所以内置的,也可所以自己界说,也可所以匿名函数即lambda。第二个参数是一个可迭代目标,如列表、字典字符串等。map函数回来的是一个map目标,也是一个可迭代目标,能够使用for循环迭代检查元素,也能够测验list()将其转为列表目标操作,map方式:

map(function, iterable, ...)

map用法

1.核算列表中所稀有的平方

L1 = [1, 2, 3, 4]
# 核算某数的平方
def square(x):
return x ** 2
square_result = map(square, L1)
print(list(square_result))
# 合作lambda最佳
square_result = map(lambda x: x ** 2, L1)
print(list(square_result))

示例成果:

[1, 4, 9, 16]
[1, 4, 9, 16]

2. 处理序列目标中的字符串

# 会集处理字符串最初和结束的换行符和空格
S = [
'I like Python\r',
'\t\n Python make me happy \n',
' without python, without living.'
]
NEW_S = list(map(lambda s: s.strip(), S))
print(NEW_S)
# 当然此例使用列表解析愈加简练:
NEW_S = [s.strip() for s in S]
print(NEW_S)

示例成果:

['I like Python', 'Python make me happy', 'without python, without living.']
['I like Python', 'Python make me happy', 'without python, without living.']

多参数传递

map也承受多个可迭代目标作为参数传递,若可迭代目标元素数量不一致则传递至元素数量最小的停止

# 两组数两两相加
L1 = [1, 2, 3, 4, 5, 6, 7]
L2 = [5, 4, 3, 2, 1]
sum_result = map(lambda x, y: x + y, L1, L2)
for one in sum_result:
print(one)

示例成果:

6
6
6
6
6

reduce概述

reduce用于对可迭代目标中的元素进行累积操作,reduce承受两个参数,一个是函数f(x, y)参数(该函数必须有两个参数),另一个是可迭代目标。reduce行为是先将可迭代目标的前两个元素传入f(x, y)中,然后不断将f(x, y)的回来值再次和下一个迭代目标传入f(x, y),直到迭代完迭代目标中的元素,并回来终究的f(x, y)的回来值。reduce方式:

reduce(function, iterable[, initializer])

reduce用法

在 Python3 中,reduce() 函数现已被从大局姓名空间里移除了,它现在被放置在 functools 模块里,假如想要使用它,则需求经过引进 functools 模块来调用 reduce() 函数。

from functools import reduce
L = [1,2,3,4,5]
sum_results = reduce(lambda x,y: x + y, L)
print(sum_results)

示例成果:

15

上例即咱们经过reduce高阶函数完成了对列表中五个数的累加进程。

filter概述

filter用于过滤挑选可迭代目标中的元素,假如契合条件则回来对应的元素序列(类型为filter),filter承受两个参数,一个是函数用于挑选元素,回来值为True或Flase,另一个是可迭代目标。

filter用法

evens = filter(is_odd, range(-5, 10))
print(list(evens))

示例成果:

[2, 4, 6, 8]
热门
最新
推荐
标签