码迷,mamicode.com
首页 > 编程语言 > 详细

python常用的高阶函数

时间:2020-03-20 10:45:22      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:指定   元素   new   amp   list   int   迭代   fun   交集   

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常用的高阶函数

标签:指定   元素   new   amp   list   int   迭代   fun   交集   

原文地址:https://www.cnblogs.com/pangyunsheng/p/12529924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!