美文网首页python学习
Python3_函数:高价函数

Python3_函数:高价函数

作者: 唐_sri | 来源:发表于2019-03-19 14:52 被阅读4次

一、编程的3种方法:

  • 面向过程:将一个大问题分成若干个小问题进行逐一的处理
  • 函数式编程:是将编程语言的函数和数学意义的函数相结合,如y=2*x+1相当于
def func(x):
    return 2 * x + 1
  • 面向对象:将事物的本质通过建立一系列模型来体现出事物的本质和特征

二、高阶函数:

1、高阶函数的定义:

  • 函数接收的参数可以是另一个函数的函数名
  • 在函数的返回值中包含于一个函数名

2、3个常用的内置高阶函数:

2.1:map()函数:

  • 将列表[1, 2, 3, 4]中的每个元素进行加10

方法1:

list01 = [1, 2, 3, 4]

def func(x):
    return x + 10

def add_num(function, array):
    res = []
    for i in array:
        res.append(function(i))
    return res

print(add_num(func, list01))

方法2:

list01 = [1, 2, 3, 4]

def add_num(function, array):
    res = []
    for i in array:
        res.append(function(i))
    return res

print(add_num(lambda x:x+10, list01))

使用map()函数:

list01 = [1, 2, 3, 4]

print(list(map(lambda x:x+10, list01)))

运行结果:

[11, 12, 13, 14]

map()函数的用法:
map(处理方法, 可迭代对象)

功能:
对可迭代对象中的每个元素按照指定的处理方法进行操作,最后以迭代类型输出,可将其转换为相应的数据类型进行输出

2.2:filter()函数:

  • 将列表[{"class":101, "name":"zhang"},{"class":102, "name":"li"},{"class":201, "name":"wang"},{"class":202, "name":"zhao"}]中的年级是一年级的删除

方法1:

def func(x):
    return x["class"][0]

def class_list(function, array):
    new_list = []
    for i in array:
        if function(i) != "1":
            new_list.append(i)
    return new_list

print(class_list(func, student_list))

方法2:

def class_list(function, array):
    new_list = []
    for i in array:
        if function(i) != "1":
            new_list.append(i)
    return new_list

print(class_list(lambda x:x["class"][0], student_list))

filter()方法:

print(list(filter(lambda x:x["class"][0] != "1", student_list)))

运行结果:

[{'class': '201', 'name': 'wang'}, {'class': '202', 'name': 'zhao'}]

filter()函数的用法:
filter(处理方法, 可迭代对象)

“处理方法”得到的结果必须是一个布尔值

功能:
将可迭代对象中的元素按照指定的处理方法进行删选后以迭代类型输出,可将其转换为相应的数据类型进行输出

2.3:reduce()函数:

在Python2中可直接使用reduce()函数,在Python3中需要导入functools模块后才能使用。

  • 将列表[2, 3, 4, 10]中的元素跟指定的初始值(可选)累乘后进行输出

方法1:
情况1:没有指定初始值

def func(x, y):
    return x * y

def times(function, array, init=None):
    if init == None:
        res = 1
    else:
        res = init
    for num in array:
        res = function(res, num)
        # res *= num
    return res

print(times(func, list01))

情况2:指定初始值

def func(x, y):
    return x * y

def times(function, array, init=None):
    if init == None:
        res = 1
    else:
        res = init
    for num in array:
        res = function(res, num)
        # res *= num
    return res

print(times(func, list01, 100))

方法2:
情况1:没有指定初始值

def times(function, array, init=None):
    if init == None:
        res = 1
    else:
        res = init
    for num in array:
        res = function(res, num)
        # res *= num
    return res

print(times(lambda x,y:x*y, list01))

情况2:指定初始值

def times(function, array, init=None):
    if init == None:
        res = 1
    else:
        res = init
    for num in array:
        res = function(res, num)
        # res *= num
    return res

print(times(lambda x,y:x*y, list01, 100))

reduce()方法:
情况1:没有指定初始值

from functools import reduce

print(reduce(lambda x,y:x*y, list01))

情况2:指定初始值

from functools import reduce

print(reduce(lambda x,y:x*y, list01, 100))

reduce()函数用法:
reduce(处理方法, 可迭代对象, 初始值)

功能:
将可迭代对象中的元素按照制定的处理方法进行运算后输出

相关文章

  • Python3_函数:高价函数

    一、编程的3种方法: 面向过程:将一个大问题分成若干个小问题进行逐一的处理 函数式编程:是将编程语言的函数和数学意...

  • 函数式编程总结与应用

    高阶函数 高价函数接受一个或多个函数为参数,返回一个新的函数,两个条件满足其一则就是高阶函数,高阶函数用于修改函数...

  • 通达信股票分析软件公式函数说明

    通达信股票分析软件公式函数说明 来源:网络 一、行情函数HIGH 最高价返回该周期最高价。用法: HIGHH 最高...

  • Python3_常用的内置函数

    1、abs():取绝对值 运行结果: 1 2、all():将参数中的元素进行布尔运算 参数必须为可迭代对象,当参数...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

网友评论

    本文标题:Python3_函数:高价函数

    本文链接:https://www.haomeiwen.com/subject/vuggmqtx.html