美文网首页Python
python高阶函数

python高阶函数

作者: 西萌XXX | 来源:发表于2021-01-21 16:19 被阅读0次

一、lambda表达式

用法: lambda 参数列表:函数体

def minus(x,y):
     return x-y
#print(minus(4,3))    1
minus_lambda = lambda x,y : x - y
#print(minus_lambda(4,3))   1

##列表排序
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key = lambda x: x[1])

三元运算符

condition = True     ##条件可以改变
print(1 if condition else 2)      ##1
condition = False
print(1 if condition else 2)     ##2

二、map函数

用法:map(函数,可迭代对象)

#map函数 map(函数,可迭代对象)
list1 = [1,2,3,4,5]
r = map(lambda x: 2*x, list1)
print(list(r))          ##[2, 4, 6, 8, 10]    ##需要加list强转数据类型

m1 = map(lambda x, y : x * x + y, [1,2,3,4,5],[1,2,3,4,5])
print(list(m1))     ##[2, 6, 12, 20, 30]  5*5+5=30

items = [1,2,3,4,5]
squared = []
for i in items:
    squared.append(i**2)
#Map可以让我们⽤⼀种简单⽽漂亮得多的⽅式来实现
squared1 = list(map(lambda x: x**2, items))

三、filter过滤器

用法: filter(函数或空,可迭代的对象)

def is_not_none(s):
    return s and len(s.strip()) > 0      ##去掉两边空格总长度大于0认为不是空的 
list2 = [' ','','hello','greedy',None,'ai']
result = filter(is_not_none, list2)
print(list(result))     ##['hello', 'greedy', 'ai']

四、reduce函数

需要导入reduce模块

用法:reduce[函数,序列(可迭代),初始化一个值(可选))]

from functools import reduce
f = lambda x, y : x - y
re = reduce(f, [1,2,3,4,5])   ##1-2-3-4-5   -13
print(re)

re_final = reduce(f, [1,2,3,4,5], 10) 
print(re_final)  ##初始化为10  10-1-2-3-4-5 = -1

五、推导式

1. 列表推导式

根据已有列表推导出新的列表

list1 = [1,2,3,4,5,6]
list2 = [i + i for i in list1]
list3 = [i**4 for i in list1]
##有选择行的筛选一下
list4 = [i*i for i in list1 if i < 4] ##小于4的再做转换 1 2 3
list5 = [x if x%3==0 else -x for x in range(1,11)] ##不是3的倍数的数去相反数,其余不变
print(list1)        #[1, 2, 3, 4, 5, 6]
print(list2)        #[2, 4, 6, 8, 10, 12]
print(list3)        #[1, 16, 81, 256, 625, 1296]
print(list4)        #[1, 4, 9]
print(list5)        #[-1, -2, 3, -4, -5, 6, -7, -8, 9, -10]

2. 集合推导式

set1 = {1,2,3,4,5,6}
set2 = {i + i for i in set1}
set3 = {i**4 for i in set1}
##有选择行的筛选一下
set4 = {i*i for i in set1 if i < 4} ##小于4的再做转换 1 2 3
print(set1)        #{1, 2, 3, 4, 5, 6}
print(set2)        #{2, 4, 6, 8, 10, 12}
print(set3)        #{256, 1, 16, 625, 81, 1296}  无序
print(set4)        #{1, 4, 9}

3.字典推导式

dict_ = {
        "韩欢": 18,
        "西萌": 26,
        "秀儿": 5
        }
##拿出所有的key,并变成列表
dict_key = [key + "zzz" for key, value in dict_.items()]
##key和value颠倒
dict_s1 = {value: key for key, value in dict_.items()}
##只拿出符合条件的键值
dict_s2 = {key: value for key, value in dict_.items() if key == "韩欢"}
print(dict_key)             #['韩欢zzz', '西萌zzz', '秀儿zzz']
print(dict_s1)              #{18: '韩欢', 26: '西萌', 5: '秀儿'}
print(dict_s2)              #{'韩欢': 18}

六、闭包

返回值是函数的函数

import time
def run_time():
    def now_time():
        print(time.time())
    return now_time
f = run_time()
print(f())       ##当前时间戳 

相关文章

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

  • Python高阶函数

    本文要点 1.什么是高阶函数 2.python中有哪些常用的高阶函数 什么是高阶函数? 在了解什么是高阶函数之前,...

  • wangyanhua--python2

    基本函数的使用 匿名函数 常用系统高阶函数 高阶函数 常用系统高阶函数 Python递归 安装第三方库 三国小说人...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • 【Python】-014-函数-函数式编程-2

    python内置高阶函数 Filter函数filter(function, sequence) -> list, ...

  • 函数式编程--高阶函数

    高阶函数英文叫Higher-order function。什么是高阶函数?举例说明。变量可以指向函数以Python...

  • 高阶函数(Python)

    什么是高阶函数(Python)? 高阶函数:能接收函数做参数的函数 变量可以指向函数 函数的参数可以接受变量 一个...

  • filter函数有点意思

    filter函数 filter(function, iterable)filter函数是python中的高阶函数,...

  • 高阶python 函数式编程

    高阶python 函数式编程 - 函数式 函数式编程(FunctionalProgramming) - 基于lam...

网友评论

    本文标题:python高阶函数

    本文链接:https://www.haomeiwen.com/subject/mnorzktx.html