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‘])

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

时间: 2024-11-04 10:03:01

python常用的高阶函数的相关文章

函数式编程 & Python中的高阶函数map reduce filter 和sorted

1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型.在面向对象编程中,我们把对象传来传去,那在函数式编程中,我们要做的是把函数传来传去,而这个,说成术语,我们把他叫做高阶函数.飞林沙 2)特点 计算视为视为函数而非指令 纯函数式编程:不需变量,无副作用,测试简单(每次的执行结果是一样的) 支持高阶函数,代码简洁 2. python支持

python之6-2高阶函数

1. map函数 map(函数A,字符串或者列表) map函数的意思是将函数A依次作用到字符串的每个字符或者列表的每个元素. 例如: map(lambda x: x*x,[1,2]) [1, 4] 这里lambda是匿名函数,匿名函数的作用就是不用定义函数名. 格式:lambda 参数: exp 关于map函数,其实用的并不是太多,因为可以用列表解析来写,例如上面的等价于[x*x for x in range(1,3)] 2. reduce函数 reduce(函数A,字符串或者列表) reduc

python 中的高阶函数

函数名其实就是指向函数的变量 >>> abs(-1) 1 >>> abs <built-in function abs> >>> a=abs >>> a(-1) 1 高阶函数:能接收函数做变量的函数 >>> def abc(x,y,f): ... return f(x)+f(y) ... >>> abc(-2,3,abs) 5 python中的内置高阶函数 map()函数和reduce(

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰器 1.1什么是高阶函数? 1.1.1函数接收的参数,包涵一个函数名. 1.1.2 函数的返回值是一个函数名. 其实这两个条件都很好满足,下面就是一个高阶函数的例子. def test1(): print "hamasaki ayumi" def test2(func): return t

python中的高阶函数

高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下代码: >>> abs(-10) 10 但是,如果只写abs呢? >>> abs <built-in function abs> 可见,abs(-10)是函数调用,而abs是函数本身. 要获得函数调用结果,我们可以把结果赋值给变量: >>> x

Python 函数式编程--高阶函数Map、Reduce、Filter、Sorted

1.1   高阶函数 变量可指向函数 >>> abs(-10) 10 >>> x = abs    --x指向abs函数 >>> x(-1)      --直接调用x 1 调用abs和调用x完全相同. 函数名也是变量 >>> abs = 10 >>> abs(-10) Traceback (most recent call last): File "<stdin>", line 1,

python学习笔记——高阶函数map()

满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表. 2 语法 map(function, sequence[, sequence, ...]) function:函数 sequence:一个或多个序

python字符串反转 高阶函数 @property与sorted(八)

(1)字符串反转 1倒序输出 s = 'abcde' print(s[::-1]) #输出: 'edcba' 2 列表reverse()操作 s = 'abcde' lt = list(s) lt.reverse() print(''.join(lt)) #输出: 'edcba' 3 二分法交换位置 s = 'abcde' lt = list(s) for i in range(len(l) // 2): lt[i], lt[-(i+1)] = lt[-(i+1)], lt[i] print('

【python基础】高阶函数

一.定义 参数是一个函数的函数 ——> 高阶函数 二.高阶函数 1.abs(n) : 求n的绝对值,并返回给调用处 1 res1 = abs(-609) # 609 2.list.sort(key, reverse=False) : 将列表中的每个元素按照指定的规则排序;无返回值,将排序的结果直接作用于原列表 形参key的值是个函数, 这个函数用来指定列表排序的规则 这个函数必须要有一个参数, 这个参数就代表列表中的每个元素 这个函数必须要有一个返回值,这个返回值就是用来比较每个元素排序顺序的