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常用的高阶函数的主要内容,如果未能解决你的问题,请参考以下文章