首页 > 编程语言 >python中的几个特殊的高阶函数(map();filter();reduce(); enumerate();zip())

python中的几个特殊的高阶函数(map();filter();reduce(); enumerate();zip())

时间:2023-01-09 23:14:27浏览次数:50  
标签:map 函数 zip python reduce filter enumerate print

python中的几个特殊的高阶函数(map();filter();reduce(); enumerate();zip())

map函数

  • map函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每一个元素,并把结果作为新的Iterable返回,基本规则 map(function,iterable...), function---函数名, iterable---一个或多个序列
#1.基本函数与map函数连用
    def func(x):
    return  x*x
a = [1,2,3,4,5]
b = map(func,a)
print(list(b))
#输出结果 [1, 4, 9, 16, 25]


#2.基本函数与lambda函数连用
a = map(lambda x:x*x,[1,2,3,4])
print(list(a))


#3.也可以与自带的内部函数
import math
a = [1,2,3,4,5]
r = map(math.sqrt,a)
print(list(r))
 
                                                   

filter函数

  • filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中
  • filter主要用来做筛选运算
#  filter函数与map函数类似
#1.基本函数与map函数连用
def is_odd(n):
    return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5])
print(list(newlist))
#输出结果[1, 3, 5]

#与lambad函数连用
newlist = filter(lambda x:x % 2 == 1, [1, 2, 3, 4, 5])
print(list(newlist))

#思考,如果将filter函数换成map函数,其输出的结果是True与Flase,并不是结果

reduce函数

  • reduce有三个参数,第一个是函数function,第二个是序列sequence,第三个是initial,为初始值,默认为None。reduce(func,lst),其中func必须至少有两个参数。每次func计算的结果继续和序列的下⼀个元素做累积计算
  • reduce函数主要用来做迭代运算
#普通用法
def f(x, y):
 return x + y
a = reduce(f, [1, 3, 5, 7, 9])
print(a)
'''
调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:
先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
'''

#reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100
def f(x, y):
 return x + y
a = reduce(f, [1, 3, 5, 7, 9,],100)
print(a)

'''
结果将变为125,因为第一轮计算是:
计算初始值和第一个元素:f(100, 1),结果为101。
'''

enumerate函数

  • enumerate的用法多用于在for循环中得到计数**

  • enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类

    enumerate(iterable, start=0)#star可以更改起始的位置
    
    # 反转字符串
    name = "小黑半夜三点在被窝玩愤怒的小鸟"
    lenbook = len(name) -1
    result = ''
    for index,value in enumerate(name): #enumerate可以返回两个值 index:0 1 2 3 4..... value为相对应的值
        result = result + name[lenbook-i]
    print(result)
    
    #示例2
    colors = ["red", "yellow", "green", "black"]
    for i,j in enumerate(colors,start=1):
        print(i,j)
    '''
    输出结果
    1 red
    2 yellow
    3 green
    4 black
    '''
    

zip函数

  • zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
colors = ["red", "yellow", "green", "black"]
fruits = ["apple", "pineapple", "grapes", "cherry"]
for item in zip(colors,fruits):
    print(item)
"""
输出结果:
('red', 'apple')
('yellow', 'pineapple')
('green', 'grapes')
('black', 'cherry')
"""

# 当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

标签:map,函数,zip,python,reduce,filter,enumerate,print
From: https://www.cnblogs.com/yangzilaing/p/17038790.html

相关文章

  • 关于Map和WeakMap
    Map1:什么是MapMap类似于对象,但是键名不限于字符串,可以说Object结构提供键值对应,Map提供值值对应,因此采用Map结构会优于传统对象。constdataMap=newMap()co......
  • Python----联系与总结
    编写一个学生档案系统,要求如下:1.可以添加、删除、修改、查找学员信息。2.创建学号时如果已存在,则输出提示并重新添加。3.查找学员信息时,存在则输出,不存在则给出提示。......
  • Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=17748最近我们被客户要求撰写关于销售量时间序列建模预测的研究报告,包括一些图形和统计输出。在本文中,在数据科学学习之旅中,我经常处理......
  • Python编程之——推导式解析
    今天这篇文章总结一下Python的推导式,python推导式又叫解析式,是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。列表推导式1)表达式  for ......
  • Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
    全文链接:http://tecdat.cn/?p=31201原文出处:拓端数据部落公众号摘要:此报告首先将dataset进行数据清洗,得到dataset_new。再将dataset_new中属性分为基本信息、贷款行为/......
  • python 使用waitress替代flask自带的web服务器
    首席引入依赖安装waitrsspipintsllwaitress 然后在flask程序内引入依赖使用server()函数代替app.run()函数启动时,直接pythonxxx.py即可fromwaitressimportserve......
  • Guava学习笔记:Guava新增集合类型-Bimap
    @TestpublicvoidBimapTest(){BiMap<Integer,String>logfileMap=HashBiMap.create();logfileMap.put(1,"a.log");logfileMap.pu......
  • python简易计算器的实现
    #导入模块importdatetime,time,tkinter#新建一个窗口windows=tkinter.Tk()#给窗口定义标题windows.title('简易计算器')#给窗口定义尺寸windows.geometry('500x60......
  • 使用Python清理历史文件夹
    根据修改时间,删除文件夹。例如:删除某个日期之前的文件夹。#-*-coding:utf-8-*-#@Time:2023/1/919:34#@Author:King#@Software:PyCharm#@Describe......
  • python数据分析与可视化【思维导图】
    python数据分析与可视化常用库numpy+matplotlib+pandas思维导图图中难免有错误,后期随着学习与应用的深入,会不断修改更新。当前版本号:1.0numpy介绍NumPy是什么?NumP......