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'])
posted @ 2020-03-20 10:09  PangYunsheng  阅读(221)  评论(0)    收藏  举报