失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python高阶函数_python_bomb----高阶函数

python高阶函数_python_bomb----高阶函数

时间:2023-10-25 00:17:57

相关推荐

python高阶函数_python_bomb----高阶函数

高阶函数

实参是一个函数名

函数的返回值是一个函数

print(abs(-10))

f = abs

print(f(-10))

#传递的参数包含函数名。

def myfun(x,y,fun):

return f(x),f(y)

print(myfun(-10,23,abs))

10

10

(10, 23)

python内置高阶函数

map()函数

map() 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回。

#随机生成一个长度为10,元素在2~7之间的列表

#对列表里所有元素求阶乘

import random

lee= [random.randint(2,7) for i in range(10)]

print(lee)

def mult(x):

rs=1

for i in range(1,x+1):

rs=i*rs

return rs

print(map(mult,lee))

print(list(map(mult,lee)))

[2, 6, 5, 3, 3, 3, 3, 5, 4, 6]

[2, 720, 120, 6, 6, 6, 6, 120, 24, 720]

reduce()函数

把当前输出作为下一次运算的输入

python2中为内置函数

python3需要导入,from functools import reduce

#求10的阶乘

from functools import reduce

def multi(x, y):

return x * y

# [1,2,3] ---> multi(multi(1,2),3)

c = reduce(multi, range(1, 11))

print(c)

filter()函数

filter() 也接收一个函数和一个序列。和 map() 不同的时,filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True还是 False 决定保留还是丢弃该元素。

#求0~10之间的奇数

def isodd(x):

return x % 2 != 0

# [i for i in range(100,111) if i %2 !=0]

d = filter(isodd, range(0, 11))

print(d)

print(list(d))

[1, 3, 5, 7, 9]

匿名函数

匿名函数定义规则

lambda 形参:返回值

from functools import reduce

print(reduce(lambda x,y:x+y,[1,2,3,4,5]))

15

列表里嵌套列表进行排序

d = {

'001':{

'name':'apple',

'count':124,

'price':1000

},

'002':{

'name':"banana",

'count':8,

'price':1024

}

}

#列表里嵌套元组

print(d.items()) #按key值排序

print(sorted(d.items(),key=lambda x:x[1]['count']))

print(sorted(d.items(),key=lambda x:x[1]['price']))

#itemgetter会忽略key值

print(sorted(d.values(),key=itemgetter('count')))

print(sorted(d.values(),key=itemgetter('price')))

dict_items([('001', {'name': 'apple', 'count': 124, 'price': 1000}), ('002', {'name': 'banana', 'count': 8, 'price': 1024})])

[('002', {'name': 'banana', 'count': 8, 'price': 1024}), ('001', {'name': 'apple', 'count': 124, 'price': 1000})]

[('001', {'name': 'apple', 'count': 124, 'price': 1000}), ('002', {'name': 'banana', 'count': 8, 'price': 1024})]

[{'name': 'banana', 'count': 8, 'price': 1024}, {'name': 'apple', 'count': 124, 'price': 1000}]

[{'name': 'apple', 'count': 124, 'price': 1000}, {'name': 'banana', 'count': 8, 'price': 1024}]

如果觉得《python高阶函数_python_bomb----高阶函数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。