首页 > 编程语言 >python中的高阶函数

python中的高阶函数

时间:2022-11-26 23:36:02浏览次数:42  
标签:函数 python data list1 list print 高阶 lambda

1.匿名函数

# 1.匿名函数lambda
# 简化代码 减少占用的内存
print('1.匿名函数lambda')


def func():
    print(10)


func()

func = lambda: print(10)
# 出现警告的原因是:
# 因为你把lambda表达式赋给了另一个变量。
# 但lambda表达式本就是一个匿名的函数,
# PEP8规范并不推荐将lambda表达式赋值给一个变量,
# 再通过变量调用函数这种方式。
# 这种方式不能体现lambda表达式的特色,
# 基本只是复制def的功能,
# 同时这个变量名其实也不是lambda表达式真正的函数名,
# 还显得比def方式更容易混淆。
# 事实上lambda表达式的正确用法应该是在不分配变量的情况下使用


# lambda 形参: print(10)
# 有一个返回值,并且只有一句代码
# 参数部分可有可无
def func0(a, b):
    return a+b


print(func0(1, 2))

func00 = lambda a, b: a + b
print(func00(1, 2))


# 排序

list1 = [[3, '1'], [1, '3'], [2, '2']]
# for i in list1:
#     print(i[0])  # 输出前面的数字
list1.sort(key=lambda i: i[0])  # 根据list1每个元素中的第一个元素从小到大排序
print(list1)

list1 = [[3, '1'], [1, '3'], [2, '2']]
# for i in list1:
#     print(i[1])  # 输出后面的字符串
list1.sort(key=lambda i: i[1])  # 根据list1每个元素中的第二个元素从小到大排序
print(list1)

list1 = [[3, '1:3'], [1, '3:2'], [2, '2:1']]
# for i in list1:
#     print(i[1][-1])  # 输出字符串的最后一个字符
list1.sort(key=lambda i: i[1][-1])  # 根据list1每个元素中的第二个元素的-1索引位置的数据从小到大排序
print(list1)

 

 

2.高阶函数map

# 2.高阶函数map(func,list)
# 映射出一个新的数据
print()
print('2. map()')
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
map(lambda i: str(i), list1)  # 将list1中的每个数据转换成str类型
# print(map(lambda i: str(i), list1))  # 打印出的是迭代器,而不是期望输出的数据
# for i in list1:
#     print(str(i))
print(list(map(lambda i: str(i), list1)))

# for i in list1:
#     print(i+1)
list2 = list(map(lambda i: i + 1, list1))  # list1中的每个数据+1
print(list2)

 

 

3.高阶函数reduce()

# 3.高阶函数reduce(func,list)
# 累计
# 需要导入模块
from functools import reduce  # 只导入了这一个函数

print()
print('3. reduce()')
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(reduce(lambda a, b: a + b, list1))  # 求和 和sum()作用相同
print(reduce(lambda a, b: a * b, list1))  # 求积

 

 

 4.高阶函数filter

# 4.高阶函数filter(func,list)  筛选
# 过滤函数
# 过滤不符合的表达式
# 过滤走不符合条件的数据,保留合乎条件的数据
print()
print('4. filter()')
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# for i in range:
#     if i%2 !=0:
print(list(filter(lambda i: i % 2 == 0, list1)))  # 选出偶数

 

 

5.递归

# 5.递归  套娃
# 递归特点:
# 1,函数内部自己调用自己
# 2,必须要有接口
print()
print('5.递归')


def func1(data):
    if data == 1:
        return 1
    return data + func1(data - 1)


print(func1(3))  # 3+2+1
print()
# 将列表中的每个数据输出 def func2(list0): if type(list0) == list: # 判断是否是列表 for i in list0: func2(i) else: print(list0) list1 = [1, 2, [3, [4, 5], [6, 7, 8]], [9, 0]] func2(list1)

 

 

# 今日作业
"""
用递归求5的阶乘(5*4*3*2*1)
"""
print()
print('今日作业')


def func3(data: int) -> int:
    """
    阶乘函数
    :param data:
    :return:
    """
    if data == 1:  # 判断输入的数据是否为1
        return 1
    return data * func3(data - 1)


print(func3(5))

 

标签:函数,python,data,list1,list,print,高阶,lambda
From: https://www.cnblogs.com/qc2012/p/16928632.html

相关文章

  • python--class基础
     (1)创建类(只包含方法)class类名:def方法1(self,参数列表):passdef方法2(self,参数列表):passself是必须参数,self代表对象本......
  • PYTHON_字典
    分模块积累,此模块为【字典】。1. 计算输入字符串中,各字母出现的次数。#方法一:s=input()dic={}foreins:ifenotindic:#若初次进入,则字典取值初始化为1......
  • 定义(创建)、调用函数及返回值
    5.2定义(创建)、调用函数及返回值5.2.1定义(创建)函数要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列......
  • python硬核表白
    print('\n'.join([''.join([('Love'[(x-y)%len('Love')]\if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0else'')forxinrange(-30,30)])fory......
  • Android 将函数放到主线程运行
    有时候,app会检测加密函数是否在主线程运行,为了逃避这种检测,要将函数放到主线程运行Class<?>aClass=RposedHelpers.findClass("com.yuanrenxue.challenge.three.Challen......
  • Selenium4+Python3系列(九) - 上传文件及滚动条操作
    一、上传文件操作上传文件是每个做自动化测试同学都会遇到,而且可以说是面试必考的问题,标准控件我们一般用send_keys()就能完成上传,但是我们的测试网站的上传控件一般为自......
  • TypeScript之构造函数和this
     示例:classDog{name:string;age:number;//constructor被称为构造函数//构造函数会在对象创建时调用constructor(name:string,age:......
  • python爬取某美食数据-全民厨子美食系列
    1、分析网页,爬取美食数据​​https://mip.xiachufang.com/explore/?page=2​​​​​​https://mip.xiachufang.com/explore/?page=3​​​url="​​​https://mip.xia......
  • 细分图中的可到达节点 Dijkstra算法Python实现
    题目大意个无向图(原始图)中有n个节点,编号从0到n-1。对每条边增加若干节点构建“细分图”,求解从节点0出发能抵达的不超过距离为maxMove的节点数量。输入:edges=[......
  • python基础:pycharm下载与使用、python语法之注释、PEP8规范、变量与常量、变量的基本
    目录pycharm下载与使用python语法之注释PEP8规范变量与常量变量的基本使用常量的基本使用数据类型数据类型之整型int数据类型之浮点型float数据类型之字符串str数据类型之......