python常用的高阶函数

Posted PangYunsheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python常用的高阶函数相关的知识,希望对你有一定的参考价值。

1. filter

fliter()函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

filter(function, iterable)

1 def is_odd(n):
2     return n % 2 == 1
3 
4 tmplist = filter(is_odd, [1,2,3,4,5,6,7,8]
5 newlist = list(tmplist)
6 print(newlist)

输出结果:

[1, 3, 5, 7, 9]

2. zip

zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少内存。

zip([iterable, ...])

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = list(zip(a,b))
print(zipped)

输出结果:

[(1, 4), (2, 5), (3, 6)]
a1, a2 = zip(*zip(a,b))
print(a1, type(a1))
print(list(a1))

输出结果:

(1, 2, 3) tuple
[1, 2, 3]

3. map

map()函数会根据提供的函数对指定序列做映射。

map(function, iterable, ...)

def square(x):
    return x ** 2

map(square, [1,2,3,4,5])
map(lambad x, y: x + y, [1,3,5,7,9], [2,4,6,8,10])

输出结果:

[1,4,9,16,25]
[3,7,11,15,19]

4. set

set()函数创建一个无序不重复元素集,可以进行关系测试,删除重复数据,还可以计算交集,差集,并集等。

set([iterable])

x = set(runoob)
y = set(google)
print(x)
print(y)
print(x & y) //交集
print(x | y)  //并集
print(x - y)  //差集

输出结果:

[b, r, u, o, n]
[e, o, g, l]
set([o])
set([b, e, g, l, o, n, r, u])    
set([r, b, u, n])

以上是关于python常用的高阶函数的主要内容,如果未能解决你的问题,请参考以下文章

Python四种常用的高阶函数,你会用了吗

Python--高阶函数函数嵌套名称空间及变量作用域闭包装饰器

python第二章函数以及常用模块

吐血整理Python 常用的几种高阶函数和简单的迭代函数

python高阶函数

Python_面向对象_高阶函数