精华内容
下载资源
问答
  • python 高阶函数map
    2021-12-03 12:33:06

    map是python内置的高阶函数,其接受一个函数f和一个list,通过函数f作用于每一个元素,并返回一个map迭代器。map使用举例如下:

    # ord 根据字符获取对应的ascii码
    # chr 根据ascii码获取对应的字符
    from collections.abc import Iterator
    
    # 判断以下单词是否为按照字母升序排列
    test_list = ["effort", "circle", "yearly", "woolen", "accept", "lurker",
                 "island", "faucet", "glossy", "evader"]
    
    
    def is_ordered(word):
        for i in range(0, len(word) - 1):
            if ord(word[i]) > ord(word[i + 1]):
                return False
        return True
    
    
    res = map(is_ordered, test_list)
    print(isinstance(res, Iterator))
    print(list(res))
    

    更多相关内容
  • 详解Python高阶函数

    2020-09-16 09:49:26
    主要介绍了Python高阶函数的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
  • python高阶

    2018-07-31 23:54:51
    python高阶知识文档,内有征服python,python灰帽子等。
  • python高阶用法

    2020-12-21 13:56:15
    本文带你学习python高阶模块。以下内容将帮助加深python的理解 干货 1. 生成式、推导式的用法 Comprehensions,能用一行代码解决的绝不用第二行 gen_list = ['tencent', 'ali', 'baidu', 'huawei', 'bytes', '...
  • python高阶函数心得笔记
  • 高阶函数介绍 普通函数中的参数是一种数据类型,比如列表,字符串,整型 高阶函数的实参是一个函数名,函数的返回值是一个函数。 例如在python中有一个函数是 abs 用来求整型的绝对值: 我们可以用代码表示: f = ...
  • Python高阶函数

    2021-02-11 06:52:31
    今天主要学习了Python中sorted,filter, map 三个高阶函数,还了解了一下函数的柯里化;1.什么是高阶函数在数学中高阶函数又称算子(运算符)或泛函,包含多于一个箭头的函数,语法为:y = f(g(x));在python中,一个...

    今天主要学习了Python中sorted,filter, map 三个高阶函数,还了解了一下函数的柯里化;

    1.什么是高阶函数

    在数学中高阶函数又称算子(运算符)或泛函,包含多于一个箭头的函数,语法为:y = f(g(x));

    在python中,一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数;

    def way1(x):

    return x + 3

    def way2(x):

    return x * x

    result = way2(way1(7))

    print(result) # 100

    2.标准库中的高阶函数

    sorted函数:

    # 反向排序

    str = sorted('abcdefg', reverse=True)

    print(str) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']

    # 按指定元素进行排序

    obj = [[1,2], [5,6], [2,8], [8,3], [3,10]]

    func = lambda x: x[1]

    new_list = sorted(obj, key=func, reverse=False)

    print(new_list) # [[1, 2], [8, 3], [5, 6], [2, 8], [3, 10]]

    sorted是Python提供的功能强大的排序函数,满足字符、数字等排序要求;

    函数的第一个参数为可迭代对象,第二个参数key作为排序的规则(指定按什么排序),第三个参数表明是否反向;

    sorted函数的返回结果是列表类型;

    filter函数:

    # 过滤

    obj = filter(lambda x: x > 0, [-20, -10, -1, 0, 1, 10, 20])

    print(obj) #

    for i in obj:

    print(i) # 1 10 20

    filter函数也是接收一个函数和一个序列的高阶函数,其主要功能是过滤;

    第一个参数是一个函数,第二个参数是可迭代对象;

    filter函数的返回值是迭代器对象filter;

    map函数:

    # 函数映射

    obj = map(lambda x: x+1, [0,6,10])

    print(obj) #

    for i in obj:

    print(i) # 1 7 11

    #封包传递

    obj2 = map(lambda x, y: x+y, *([0, 5, 8], [2, 2, 2]))

    print(obj2) #

    for i in obj2:

    print(i) # 2 7 10

    map函数用来将序列中的值处理再依次返回至列表内;

    第一个参数func为函数,实现函数映射的功能,第二个参数为可迭代对象;

    map函数的返回值为一个迭代器对象map;

    3.自实现高阶函数

    # sorted高阶函数自实现

    def my_sorted(iterable, key=lambda a,b: a

    ret = []

    for x in iterable:

    for i, y in enumerate(ret):

    isReverse = reverse

    if key(x,y) if not isReverse else key(y,x):

    ret.insert(i, x)

    break

    else:

    ret.append(x)

    return ret

    print(my_sorted([3,21,3,4,5], reverse=False))

    4.函数的柯里化

    柯里化是将一个多参的函数转换成多个单参的函数,也就是将一个 n 元函数转换成 n 个一元函数;

    将f(x, y) 转换为 f(x)(y)

    f(x, y) = f(x)(y)

    也就相当于把一个函数做成嵌套函数,外层函数的返回值是内层函数,这样,外层函数调用完,返回的是一个内层函数,能接着调用;

    # 普通函数

    def add(x, y):

    return x + y

    print(add(3,7)) # 10

    # 柯里化

    def new_add(x):

    def _add(y):

    return x + y

    return _add

    print(new_add(3)(7)) # 10

    参考:侠课岛(9xkd.com)Python同学计划

    展开全文
  • 高阶函数map/reduce Python内建了map()和reduce()函数。 我们先看map。map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 举例说明...
  • python高阶闭包练习题

    2022-05-07 07:14:08
    python高阶闭包练习题
  • 说爬虫一定要先说爬取内容的方法,python有这么几个支持爬虫的库,一个是urllib和它的后续版本库,这个库做爬取的时候生成的中继对象是比较多的,楼主也记不大住都有什么,而且这个库的使用在楼主看
  • 本文实例讲述了Python高阶函数、常用内置函数用法。分享给大家供大家参考,具体如下: 高阶函数: 允许将函数作为参数传入另一个函数; 允许返回一个函数。 #返回值为函数的函数 sum=lambda x,y:x+y sub=lambda x,y:...
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个...
    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    
    例如,对于list [1, 2, 3],把list的每个元素都作平方,就可以用map()函数:
    
    
    因此,只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:
    
    def f(x):
        return x*x
    print map(f, [1, 2, 3])
    输出结果:
    
    [1, 4, 9]
    注意:map()函数不改变原有的 list,而是返回一个新的 list。
    
    利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
    
    由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
    
    任务
    假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,可以利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
    
    输入:['adam', 'LIS']
    输出:['Adam', 'Lis']
    
    
    def format_name(s):
        s1=s[0:1].upper()+s[1:].lower();
        return s1;
    
    print map(format_name, ['adam', 'LIS'])

    map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list

    python3中,map函数返回的是一个map对象,需要list(map(fun,itor))来将映射之后的map对象转换成列表

    展开全文
  • 本文实例讲述了Python高阶函数、常用内置函数用法。分享给大家供大家参考,具体如下: 高阶函数: 允许将函数作为参数传入另一个函数; 允许返回一个函数。 #返回值为函数的函数 sum=lambda x,y:x+y sub=lambda x...
  • 本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧 高阶函数 1、可以使用函数对象作为参数的函数 2、或可以将函数作为返回值的函数 3、函数对象:定义...
  • Python高阶函数—map()

    2020-12-22 03:19:26
    map()是 python 中内置的一个高阶函数,它接收一个函数 和一个可迭代对象,并通过把函数 f 依次作用在可迭代对象的每个元素上,得到一个新的迭代器(Python2则直接返回一个列表) 一个简单例子 def f(x): return x ...
  • 下面小编就为大家带来一篇详谈Python高阶函数与函数装饰器(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Python高阶函数使用总结什么是高阶函数?一、map()二、filter()三、reduce()四、sorted()和sort()五、zip() 什么是高阶函数? 接收函数作为参数或者把函数作为结果返回的函数是高阶函数(higher-order function) ...


    什么是高阶函数?

    接收函数作为参数或者把函数作为结果返回的函数是高阶函数(higher-order function)

    函数作为参数

    def add_num(a, b, func):
       return func(a) + func(b)
    
    res = add_num(1, -2, abs)  # 将abs函数的引用作为参数传入add_num中
    print(res)
    
    # 输出
    3
    

    函数作为返回值

    def func1():
       print("func1")
    
    def func2(func):
       print("func2")
       return func   # 将函数作为返回值
    
    res = func2(func=func1)
    print(res)
    
    # 输出
    func2
    <function func1 at 0x7ff69d1f2c20> 
    

    高阶函数是函数式编程的体现,函数式编程即是这种抽象化的编程范式。从设计上看,Python不是一门函数式语言,但其借鉴了函数式编程中一些好的想法。
    本篇博客将详细介绍以下五个Python中内置的高阶函数

    • map()
    • filter()
    • reduce()
    • sorted()/sort()
    • zip()

    一、map()

    map(func, *iterables)
    

    map函数将传入的func功能函数作用于可迭代序列iterables中的每个元素,最终返回一个列表(Python2)或新的迭代器(Python3)。func函数可以是Python内置函数、自定义函数或者匿名函数,以下举例说明map函数的用法

    1、使用Python内置函数

    a = map(abs, [-1, 2, -3, 4])
    print(a)
    print(list(a))  # 通过list()对map的结果处理
    
    # 输出
    <map object at 0x7f91cc1cb550>  # Python3输出的是可迭代对象
    [1, 2, 3, 4]
    

    2、使用自定义函数

    def func(x):
        return x ** 2
    
    a = map(func, [-1, 2, -3, 4])
    print(a)
    print(list(a))
    
    # 输出
    <map object at 0x7fa9f2b84c10>
    [1, 4, 9, 16]
    

    3、使用匿名函数

    a = map(lambda x, y:  x + y, [1, 2, 3], [4, 5, 6])
    print(list(a))
    
    # 输出
    [5, 7, 9]
    

    二、filter()

    filter(func, iterable)
    

    filter函数用于过滤序列,过滤掉不符合条件的那些元素,返回符合条件的元素组成的filter对象。
    将func功能函数作用于iterable可迭代序列的每个元素进行真假判断,最终返回结果为True的元素组成的序列。需要注意以下几点:

    • map不同,filter只需要传入一个可迭代对象。
    • 必须使用func参数才能返回布尔类型。 如果不是,filter仅返回传递给它的可迭代对象。 另外,由于仅需要一个可迭代的函数,因此隐含的是func必须仅接受一个参数。
    • filter通过func传递可迭代对象中的每个元素,并仅返回评估为true的那些元素。

    示例代码如下:

    a = filter(lambda x: x % 2 == 0, list(range(10)))  # 过滤出偶数序列
    
    dromes = ("demigod", "rewire", "madam", "freer", "anutforajaroftuna", "kiosk")
    b = filter(lambda word: word == word[::-1], dromes)  # 回文串检测器
    
    print(list(a))
    print(list(b))
    
    # 输出
    [0, 2, 4, 6, 8]
    ['madam', 'anutforajaroftuna']
    

    三、reduce()

    from functools import reduce
    reduce(function, sequence, initial=None)
    

    Python3中将reduce函数移入functools模块中,使用时需要导入。
    参数中function是对sequence中的每个元素累积应用的函数,而initial是在计算中置于sequence元素之前的可选值,并且在sequence为空时用作默认值。

    示例代码如下:

    from functools import reduce
    
    a = reduce(lambda x, y: x + y, [1, 2, 3, 4])
    b = reduce(lambda x, y: x * y, [1, 2, 3, 4], 5)
    c = reduce(lambda x, y: x * y + 1, [1, 2, 3, 4], 5)
    
    print(a)
    print(b)
    print(c)
    
    # 输出
    10    # 计算过程:((1+2)+3)+4
    120	  # 计算过程:(((5*1)*2)*3)*4
    161	  # 计算过程:(((5*1+1)*2+1)*3+1)*4+1
    

    四、sorted()和sort()

    sorted函数

    sorted(iterable, key=None, reverse=False)
    
    • iterable: 待排序的可迭代对象
    • key=None: 接受一个回掉函数,回调函数只能有一个参数,根据函数的返回值进行排序
    • reverse=False: 接受一个布尔值,选择是否反转排序结果,默认是升序排列

    示例代码如下

    a = sorted([1, -2, 5, 3])  # 列表排序
    b = sorted({'name': 'python', 'address': 'beijing', 'phone': '12345678'})  # 对字典进行排序时,默认是对字典的key进行排序
    
    c = sorted([3, 7, 5, 2], reverse=True)  # 降序排列
    
    list1 = [('python', 4), ('java', 3), ('c++', 1), ('c', 2)]
    d = sorted(list1, key=lambda x: x[1], reverse=True)  # 按照d的第二个元素排序,并将排序结果逆转
    
    print(a)
    print(b)
    print(c)
    print(d)
    
    # 输出
    [-2, 1, 3, 5]
    ['address', 'name', 'phone']
    [7, 5, 3, 2]
    [('python', 4), ('java', 3), ('c', 2), ('c++', 1)]
    

    sort函数
    sorted函数进行排序是生成新的结果,而sort是直接原地修改,是一种in_place原地操作

    示例代码如下

    list1 = [1, 8, 3, 9]
    list2 = [1, 8, 3, 9]
    
    sorted(list1)
    list2.sort()
    
    print(list1)
    print(list2)
    
    # 输出
    [1, 8, 3, 9]  # 使用sorted,原列表没有变
    [1, 3, 8, 9]  # 使用sort,原列表变了
    

    五、zip()

    zip(*iterables)
    

    zip函数在多迭代器上并行迭代,从每个迭代器返回一个数据项组成一个元祖

    示例代码如下

    # zip接受单个元素
    a = zip([1, 2, 3])  # 传入列表类型
    b = zip('python')  # 传入字符串类型
    c = zip((1, 2, 3))  # 传入元组类型
    
    # zip接受多个元素
    d = zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
    
    print(list(a))
    print(list(b))
    print(list(c))
    print(list(d))
    
    # 输出
    [(1,), (2,), (3,)]
    [('p',), ('y',), ('t',), ('h',), ('o',), ('n',)]
    [(1,), (2,), (3,)]
    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    
    展开全文
  • 主要介绍了python高阶函数map()和reduce()实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python高阶.md

    2021-09-16 23:25:38
    python高阶
  • Python高阶.pdf

    2021-05-22 09:30:56
    Python高阶.pdf
  • Python高阶函数(一)

    2021-01-20 03:51:11
    Python 内建了 map()和 reduce()函数。我们先看 map。map()函数接收两个参数,一个是函数,一个是 Iterable,map 将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator 返回。 比如我们有一个函数 f(x)=...
  • 高阶函数和普通函数的区别,高阶函数分类,通过几个实例了解,掌握sort(),sorted()的关系,以及两者的参数选择,map()的使用方法
  • python 高阶函数

    2020-11-28 08:35:12
    映射类map():会根据提供的函数对指定序列做映射,映射的结果可以进行相应的类型转换。语法格式如下:#第一个参数为映射函数,之后的一个或多个参数为可迭代类型,返回结果为map对象map(func, *iterables) -->map ...
  • Python高阶函数使用总结!

    千次阅读 2020-11-07 20:06:10
    本文结合各种实际的例子详细讲解了Python5个内建高阶函数的使用,能够帮助理解Python的数据结构和提高数据处理的效率,这5个函数分别是: map reduce filter sorted/sort zip 一、map ...
  • 适用于高校科研研究分析数据,本次版本为三阶代码,可根据需要修改更高阶,需对Python有一定基础,请仔细确认。购买有如有疑问可QQ邮箱联系(932245968@qq.com)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,842
精华内容 21,536
关键字:

python高阶

友情链接: i2c.rar