我的编程空间,编程开发者的网络收藏夹
学习永远不晚

一篇文章带你学习Python3的高阶函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

一篇文章带你学习Python3的高阶函数

1.高阶函数

# 1.变量指向函数
# 调用函数和函数本身
print("-10的绝对值为:",abs(-10))
print("绝对值函数本身:",abs)
print("--------------------------------------------------")
# 把函数调用结果和函数本身赋值给变量,即变量指向函数
abs1 = abs(-100)
print("-100的绝对值为:",abs1)
selfAbs = abs
print("abs函数本身:",selfAbs)
print("--------------------------------------------------")
# 2.函数名也是变量
# 函数名:指向函数的变量;
# 可以将abs指向-10,即:abs = -10
# 3.传入函数:一个函数可以接收另外一个函数作为参数,这种函数称为高阶函数;
# 实例:
def add(x,y,f):
    return f(x) + f(y)
# 调用add()函数
print("add(-5,-10,abs)的值为:",add(-5,-10,abs))

# 结果输出:
-10的绝对值为: 10
绝对值函数本身: <built-in function abs>
--------------------------------------------------
-100的绝对值为: 100
abs函数本身: <built-in function abs>
--------------------------------------------------
add(-5,-10,abs)的值为: 15
 

2.map/reduce

# reduce
# reduce把一个函数作用在一个序列[x1,x2,...]上,这个函数必须接收两个参数;
# reduce把结果继续和序列的下一个元素做累积计算;
# reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)
# 实例:
from functools import reduce
def add(x,y):
    return x + y
numsList = [1,3,5,7,9]
print("reduce作用于numsList的结果为:",reduce(add,numsList))
print("-------------------------------------------------------------")
# 计算1-10的阶乘
def mul(x,y):
    return x * y
numsList = list(range(1,11))
print("使用reduce函数计算1-10的阶乘:",reduce(mul,numsList))
# 结果输出:
"""
reduce作用于numsList的结果为: 25
-------------------------------------------------------------
使用reduce函数计算1-10的阶乘: 3628800
"""
# reduce
# reduce把一个函数作用在一个序列[x1,x2,...]上,这个函数必须接收两个参数;
# reduce把结果继续和序列的下一个元素做累积计算;
# reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)
# 实例:
from functools import reduce
def add(x,y):
    return x + y
numsList = [1,3,5,7,9]
print("reduce作用于numsList的结果为:",reduce(add,numsList))
print("-------------------------------------------------------------")
# 计算1-10的阶乘
def mul(x,y):
    return x * y
numsList = list(range(1,11))
print("使用reduce函数计算1-10的阶乘:",reduce(mul,numsList))
# 结果输出:
"""
reduce作用于numsList的结果为: 25
-------------------------------------------------------------
使用reduce函数计算1-10的阶乘: 3628800
"""

3.filter

def is_odd(n):
    return n % 2 == 1
# 在list中删除偶数,保留奇数
numsList = [1,2,5,7,19,23,3,6,9]
print("numsList内容为:",numsList)
print("filter后的结果:",list(filter(is_odd,numsList)))
print("--------------------------------------------------")
# 用埃氏筛法求素数
# 1.构造一个从3开始的奇数序列
def _odd_iter():
    n = 1
    while True:
        n = n + 2
        yield n
# 2.定义一个筛选函数
def _not_divisible(n):
    return lambda x: x % n > 0
# 3.定义一个生成器,不断返回下一个素数
def primes():
    yield 2
    it = _odd_iter() # 初始序列
    while True:
        n = next(it) # 返回序列的第一个数
        yield n
        it = filter(_not_divisible(n), it) # 构造新序列
# 打印1000以内的素数
for n in primes():
    if n < 1000:
        print(n,end = " ")
    else:
        break

# 结果输出:
numsList内容为: [1, 2, 5, 7, 19, 23, 3, 6, 9]
filter后的结果: [1, 5, 7, 19, 23, 3, 9]
--------------------------------------------------
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 
 

4.sorted

# 排序算法
# sorted()函数可以对list进行排序;
numsList = [1,2,4,3,9,6,8,7,0]
print("原始的list内容:",numsList)
print("使用sorted排序后list内容:",sorted(numsList))
print("----------------------------------------------------------")
# sorted()函数可以接收一个key函数来实现自定义排序
# 按绝对值大小排序
numsList2 = [-10,2,3,4,6,5,-9,-8,7]
print("原始的list内容:",numsList2)
print("按照绝对值排序:",sorted(numsList2,key = abs))
print("----------------------------------------------------------")
# 忽略大小写对字符串列表进行排序
nameList = ["Willard","ChenJD","ChenBao","ChenXiaoBao","hackerLuo"]
print("nameList原始内容为:",nameList)
print("忽略大小写排序:",sorted(nameList,key = str.lower))
print("对列表反向排序:",sorted(nameList,key = str.lower,reverse = True))

# 结果输出:
原始的list内容: [1, 2, 4, 3, 9, 6, 8, 7, 0]
使用sorted排序后list内容: [0, 1, 2, 3, 4, 6, 7, 8, 9]
----------------------------------------------------------
原始的list内容: [-10, 2, 3, 4, 6, 5, -9, -8, 7]
按照绝对值排序: [2, 3, 4, 5, 6, 7, -8, -9, -10]
----------------------------------------------------------
nameList原始内容为: ['Willard', 'ChenJD', 'ChenBao', 'ChenXiaoBao', 'hackerLuo']
忽略大小写排序: ['ChenBao', 'ChenJD', 'ChenXiaoBao', 'hackerLuo', 'Willard']
对列表反向排序: ['Willard', 'hackerLuo', 'ChenXiaoBao', 'ChenJD', 'ChenBao']
 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

一篇文章带你学习Python3的高阶函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一篇文章带你了解Python递归函数

递归是一种常见的编程技巧,在Python中也可以通过递归函数来实现。递归函数是指在函数的定义中调用函数本身的情况。通过递归函数,我们可以解决一些需要重复执行相同操作的问题。首先,让我们来看一个简单的例子,计算一个数的阶乘。阶乘是指从1到该数
2023-09-22

一文带你学习C++中的虚函数

C++中的虚函数是一种非常重要的概念,它允许一个子类重写基类的方法,并确保在调用基类指针或引用的方法时,调用正确的子类方法,本文将介绍C++虚函数的基本概念、语法、使用及其示例,需要的朋友可以参考下
2023-05-19

一文带你学习C++析构函数

在C++中,析构函数是一种特殊类型的成员函数,用于在对象生命周期结束时被自动调用,本文我们将介绍C++析构函数的一些重要知识点,并提供相应代码示例,需要的朋友可以参考下
2023-05-19

一篇文章带你掌握C++虚函数的来龙去脉

虚函数主要通过V-Table虚函数表来实现,该表主要包含一个类的虚函数的地址表,可解决继承、覆盖的问题,下面这篇文章主要给大家介绍了如何通过一篇文章带你掌握C++虚函数的来龙去脉,需要的朋友可以参考下
2022-11-13

蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说:分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。一. 事务1.1 什么是事务数据库事务(简
2023-06-02

一文带你学习一下C++中的构造函数

构造函数是一种特殊的函数,它用于在创建对象时初始化对象的值。在本文中,我们将学习C++的构造函数以及如何使用它们来创建对象,希望对大家有所帮助
2023-05-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录