首页 > 编程语言 >【测试开发学习历程】python高阶函数

【测试开发学习历程】python高阶函数

时间:2024-04-10 22:01:45浏览次数:17  
标签:function map 函数 迭代 python reduce 历程 高阶 iterable

目录

1 map()函数

2 reduce()函数

3 filter()函数

4 sorted()函数


1 map()函数

map()函数语法:map(function,iterable)

  • 参数:

    • function:函数

    • iterable:一个或多个序列

  • 返回值:迭代器对象

作用:map()是 Python 内置的高阶函数,它接收一个函数 function 和一个 iterable,并通过把函数 function依次作用在 iterable的每个元素上,并返回一个新的迭代器;map()函数也可以接收多个iterable

# 传入一个序列的例子
def f(x):
    return x*x
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
​
for i in map(f, list1):
    print(i)
​
# 传入多个序列的例子
def f(x, y):
    return x*y
list1 = [1, 2, 3]
list2 = [4, 5, 6]
​
for i in map(f, list1, list2):
    print(i, end="\t")

注意:map()函数不改变原有的迭代器,而是返回一个新的迭代器。

2 reduce()函数

reduce()函数语法:reduce(function, iterable[, initializer])

  • 参数:

    • function:函数

    • iterable:可迭代对象

    • initializer:可选,初始参数

  • 返回值:返回函数计算结果

作用:reduce()函数也是Python内置的一个高阶函数,reduce()函数接收的参数和 map()类似,一个函数 function,一个iterable,但行为和 map()不同,reduce()函数的作用是用传给 reduce 中的function函数先对iterable中的第 1、2 个元素进行运算,得到的结果再与第3个数据用 function 函数运算,最后返回运算的结果。

Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:

from functools import reduce

举例:

def add(x, y):
    print("x=%d,y=%d" % (x, y))
    return x + y
​
sum1 = reduce(add, [1,2,3,4,5]) # 相当于计算1+2+3+4+5,得到15
print(sum1)
​
# reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为1000
sum2 = reduce(add, [1,2,3,4,5], 1000)   # 相当于计算1000+1+2+3+4+5,得到1015
print(sum2)

3 filter()函数

filter()函数语法:filter(function, iterable)

  • 参数:

    • function:判断函数

    • iterable:可迭代对象

  • 返回值:迭代器

作用:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新的迭代器对象中。

举例:

# 判断n是不是偶数
def is_odd(n):
    return n%2 == 0
    
odd = filter(is_odd, [1,2,3,4,5,100])
​
print(list(odd))

4 sorted()函数

sorted函数语法:sorted(iterable, reverse=False)

  • 参数说明:

    • iterable -- 可迭代对象。

    • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

  • 返回值:返回重新排序的列表。

作用:sorted() 函数对所有可迭代的对象进行排序操作。

面试常问题:sorted()函数与sort()方法的区别?

  1. sort()方法是应用在list对象上的方法,sorted()函数可以对所有可迭代的对象进行排序操作;

  2. list对象的sort()方法是对已经存在的列表进行操作,没有返回值,而sorted()函数返回的是一个新的list对象,而不是在原来的基础上进行的操作。

举例:

list1 = [5, 7, 6, 3, 4, 1, 2]
list2 = sorted(list1)
print(list1)        # 原来的列表顺序不变
print(list2)        # 新生成了一个列表

标签:function,map,函数,迭代,python,reduce,历程,高阶,iterable
From: https://blog.csdn.net/Sodagreen_yyds/article/details/137612707

相关文章

  • 2024年3月电子学会青少年软件编程 中小学生Python编程等级考试一级真题解析(判断题)
    2024年3月Python编程等级考试一级真题解析判断题(共10题,每题2分,共20分)26、turtle画布的坐标系原点是在画布的左上角答案:错考点分析:考查turtle相关知识,turtle画布坐标系是在画布的中点,答案错误27、Python变量名区分大小写,book和BOOK不是同一个变量答案:对考点分析:考查......
  • 【华为笔试题汇总】2024-04-10-华为春招笔试题-三语言题解(Python/Java/Cpp)
    ......
  • Python中关于finally的使用场景
    finally关键字在Python中用于定义一个代码块,该代码块在try-except结构中无论是否发生异常,或者在try块中执行了return、break、continue等控制流语句,都会被执行。finally子句提供了确保某些清理操作(如释放资源、关闭文件、断开连接等)始终执行的一种机制,即使程序在处理过程中遭遇异......
  • python八大数据类型及方法
    【1】学习变量的目的学习变量有助于我们在程序中存储和操作数据,提高代码的灵活性和可维护性。通过使用变量,我们可以方便地引用和修改数据,使得程序能够动态地响应不同的输入和条件。【2】学习基本数据类型的目的学习基本数据类型有助于我们理解不同类型的数据在计算机中的表......
  • 视频处理的利器,ffmpeg-python库详解与应用示例
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料在数字媒体的时代,视频处理成为了一项重要的技能。无论是剪辑、转码、还是添加特效,都需要强大的工具来处理视频素材。Python作为一门功能强大的编程语言,在视频处理领域也有着广......
  • python初学者笔记(7)——求和函数总结
    python经常要用到各种求和,例如列表求和,元素求和,利用函数求和,将这些方法总结发给大家!1.python两个数的求和函数defsum_2_num(num1,num2):result=num1+num2returnresult#必须在执行行输入,函数命名后必须调用,调用sum_2_num(),或者print()#sum_2_num(10,20......
  • python学习之:数据类型
    大纲:一、列表list的定义语法1、""""演示数据类型:list列表语法:变量=[元素1,元素2,元素3,......]"""#定义一个列表listname_list=['itheima','itcast','python']print(name_list)print(type(name_list))#定义一个嵌套的列表statis......
  • python函数 学习第二部分
    函数大纲:六、函数说明文档#定义函数,进行文档说明defadd(x,y):"""函数说明:paramx:参数x表示其中一个加数:paramy:参数y表示另一个加数:return:返回两数相加的结果"""result=x+yreturnresultr=add(5,6)print(r)......
  • Python复习题
    第1章Python概述【填空题】Python是一种代表(简单主义)思想的语言,同时也是一门面向对象的高级语言。【填空题】Python采用强制缩进的方式使得代码具有极佳的(可读性)。【填空题】Python源代码不需要编译成(二进制码),它可以直接使用源代码运行程序。运行时会被解释器......
  • Python 更新 为什么要更新 Python? 如何更新 Python? 更新 Python 可能遇到的问题——《
    Python更新为什么要更新Python?如何更新Python?更新Python可能遇到的问题——《跟老吕学Python编程》附录资料Python更新为什么要更新Python?如何更新Python?更新Python可能遇到的问题总结Python更新最近的一次Python更新中,最引人瞩目的变化之一......