Python趣味入门11:函数作为参数以及匿名函数

这篇具有很好参考价值的文章主要介绍了Python趣味入门11:函数作为参数以及匿名函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python函数本质上是一段代码的集合,扩展对于函数的高级用法,有利于更好的认识Python,函数是Python的核心。本篇扩展了函数的2个应用,一是把函数本身作为参数,二是介绍了匿名函数的应用。

1、以函数作为参数:

1.1 概念

Python里可以把函数本身当成是参数,比如Python内置函数map可以通过传入的函数返回值来一一映射列表集合里的元素,我们也可以在定义函数时,以调用函数的方式使用参数。

1.2 Map映射

假设有一个列表1至9共有9个元素,现在需要求其平方数列。

map(函数名,列表)

map函数的示例

1 >>> def square(x):
2 ...     return x**2
3 ... 
4 >>> s = map(square,[1,2,3,4,5,6,7,8,9])
5 >>> list(s)
6 [1, 4, 9, 16, 25, 36, 49, 64

 

以上的代码,主要完成了如下的动作:

  • 定义了square函数,返回参数的平方
  • 调用map函数生成平方数列

在包含map语句,我们使用了先前定义的函数名称square,作为参数传入另一个函数,并且完成了映射的操作。

1.3 定义包含函数参数的函数

邓布利多校长想比较霍格沃茨学校两个班a,b的成绩,有两种比较方式,一种是比较最高分,另一种是比较平均分,我们用一个函数来搞定!

>>> def compare(way,a,b):
...     if way(a)>way(b):
...             print('a班赢了')
...     elif way(a)==way(b):
...             print('平了')
...     else:
...             print('b班赢了')
>>> from statistics import mean 
>>> compare(mean,[90,80,90],[100,50,100])
a班赢了
>>> compare(max,[90,80,90],[100,50,100])
b班赢了

 

上面的代码定义了函数compare,其中有三个参数:

  • way: 函数参数,表示比较方式,是不是函数参数我们从代码中发现,在代码中way后紧跟圆括号,判断这是分别对a、b进行“某种”操作。
  • a、b: 列表分别表示两个班的成绩。

在第1调用时是平均分比较,结果是a班赢了。

compare(mean,[90,80,90],[100,50,100])

平均分代码引用了statistics模块的mean,本函数用来计算列表的平均值。

2、匿名函数:

2.1 概念

如果把每个函数形容成是固定下来的武术套路的话,有的时候简单的一两招,并不值得编成一个套路。我们定义函数也是这样,匿名函数类似于简单的两招,它是一种简化版的函数,它没有自己的名称,也不能被重复使用,但是它必须返回值,使用匿名函数的目的就是快速计算。

在Python当中匿名函数又叫:lambda表达式,其语法如下:

lambda [arg1[, arg2, ... argN]]: expression
  • 以关键字lambda开头
  • 后紧跟参数列表,使用逗号分隔
  • 冒号后跟计算式,函数返回值就是计算式的结果

表达式本身可以当成一个函数来使用,常用的栗子如下。

2.2 排序

Python内置排序sorted函数,语法如下:

sorted(列表,key=排序关键字)
  • 参数key:返回关键字的函数(一般使用匿名函数)
  • 返回值:排序好的列表结果

排序时程序会把列表中的单个元素放入参数key指定的函数当中的参数里,根据返回的值进行排序。

目前直男小牛叔在写复旦大学的毕业论文,论文的标题都是类似于1、1.1、2之类的文本,如果简单按字符排序必然会出现1、10、1.10、1.2 ...... 不合理的奇怪序列(字符总是从前到后比较那么10会比2小),比如如下的列表['10','1.1','1','2','1.3','3','2.10','2.2'],我们可以使用如下的代码:

1 >>> a = ['10','1.1','1','2','1.3','3','2.10','2.2']
2 >>> sorted(a)
3 ['1', '1.1', '1.3', '10', '2', '2.10', '2.2', '3']
4 >>> sorted(a,key = lambda x:int(x.split('.')[0]) + (int(x.split('.')[1])/10000 if '.' in x else 0))
5 ['1', '1.1', '1.3', '2', '2.2', '2.10', '3', '10']
6 >>> 

 

我们先看看key参数当中的匿名函数是什么:文章来源地址https://www.toymoban.com/news/detail-762348.html

引申:Python语言把函数也当成是类似于一种包含代码的变量,函数本身可以类似于变量,作为传递的参数,这本是Javascript等类似函数式编程的方式。其实,函数也可以被当成是返回值。

---小牛书0基础Python系列教程---

【每天1篇1周入门,请点击下方的喜欢和收藏,以备学习】

到了这里,关于Python趣味入门11:函数作为参数以及匿名函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go语言入门8(匿名函数 闭包)

    ​顾名思义,就是没有名字的函数。。。 匿名函数的两种执行方法 将匿名函数赋给一个变量 定义后立即执行匿名函数 ​闭包是由函数和与其相关的引用环境组合而成的实体,个人认为就是把一个函数以及函数所用到的参数用另外一个函数包起来,保证函数多次运行的时候,

    2023年04月20日
    浏览(57)
  • C++的引用变量作为函数参数

    在C++的中新增一个特性:按引用传递变量,虽然与按传递变量的地址可以实现相同的结果,但引用有其独特的地方。 引用传递: 引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量的别名。 通过引用变量用作参数,函数将使用原始数据,而不是其副本。 举

    2023年04月14日
    浏览(26)
  • 面试之快速学习c++11- 列表初始化和 lambda匿名函数的定义

    学习地址: http://c.biancheng.net/view/3730.html 我们知道,在 C++98/03 中的对象初始化方法有很多种,请看下面的代码: 2 .为了统一初始化方式,并且让初始化行为具有确定的效果,C++11 中提出了列表初始化(List-initialization)的概念。 3 . 在上面我们已经看到了,对于普通数组和

    2024年02月13日
    浏览(31)
  • 【Python入门篇】——Python函数(函数介绍,函数的定义,函数的参数和函数的返回值)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 函数:是组织好的

    2024年02月08日
    浏览(57)
  • C语言指针操作(二)指针变量作为函数参数

    指针变量作为函数参数详解,形参和实参之间的值传递如何传递?如何改变指针变量所指向的变量? 函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型;它的作用是将一个变量的地址传送到另一个函数中。 关于地址,指针,指针变量可以参考一下这篇

    2024年02月04日
    浏览(40)
  • 使用指针或引用作为函数参数的编程技巧

    空指针检查: 使用指针允许在函数内部检查传递的指针是否为 nullptr 。这使得在函数内部能够处理空指针的情况,增加代码的健壮性。如果使用引用,无法表示空值,而使用指针则可以通过传递 nullptr 来表示缺失的数据。

    2024年02月16日
    浏览(35)
  • 使用变量作为参数的CSS rgba()函数详解

    CSS的rgba()函数用于设置颜色值的透明度。在实际开发中,我们可能希望通过变量来动态设置颜色透明度,以实现更灵活的样式效果。本文将详细介绍如何在rgba()函数中使用变量作为参数,并提供丰富的示例代码,助你灵活控制元素的透明度。 rgba()函数是CSS3中的一种颜色函数

    2024年02月14日
    浏览(35)
  • 【Python基础】Python函数(匿名函数)

    Q:如果一个函数要有 多个返回值 ,该如何书写代码? 按照返回值的顺序,写对应顺序的多个变量接收即可 变量之间用逗号隔开 支持不同类型的数据return (1)位置参数 位置参数:调用函数时根据函数定义的 参数位置来传递参数 Tip:传递的参数 和 定义的参数 顺序及个数必须

    2024年02月08日
    浏览(33)
  • python 匿名函数(lambda函数)

    Python中的匿名函数是指没有命名标识符的函数,通常被称为lambda函数。与普通函数不同,它们是一种更加简洁的方式来编写小型临时函数。在Python中,匿名函数使用 lambda 来定义,其语法如下: 其中, arguments 表示函数参数,可以是一个或多个,多个参数之间用逗号分隔

    2024年02月02日
    浏览(43)
  • 【0基础入门Python笔记】三、python 之函数以及常用内置函数

    函数是一种用于封装可重复使用代码块的工具,能够将一系列操作组织成一个逻辑单元。 函数定义 在Python中,函数通过def进行定义,后面跟着函数的名称、参数列表和冒号。函数的主体代码块缩进,并在需要时使用return返回值。 在上面的示例中,我们定义了一

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包