首页 > 其他分享 >测试开发通关秘籍五: 彻底搞懂map,reduce和filter高阶函数

测试开发通关秘籍五: 彻底搞懂map,reduce和filter高阶函数

时间:2024-11-08 16:40:53浏览次数:4  
标签:map 函数 迭代 reduce filter numbers 搞懂

热爱技术的小牛

测试开发通关秘籍五: 彻底搞懂map,reduce和filter高阶函数

mapreducefilter 是 Python 中用于处理可迭代对象(如列表、元组等)的高阶函数。它们分别用于不同的操作,适合于不同的场景。以下是每个函数的用法及使用场景的详细介绍。

1. map 函数

  • 定义map(function, iterable, ...) 函数将给定函数应用于可迭代对象中的每个元素,并返回一个新的迭代器(在 Python 3 中)。
  • 用法:通常用于对列表中的每个元素进行相同的操作。

示例代码

# 定义一个函数,将数字平方
def square(x):
    return x ** 2

# 使用 map 函数将 square 应用于列表中的每个元素
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))

print(squared_numbers)  # 输出: [1, 4, 9, 16, 25]

使用场景

  • 当需要对可迭代对象中的每个元素应用相同的操作时,map 非常有用,例如数据预处理、转换等。

2. filter 函数

  • 定义filter(function, iterable) 函数用于过滤可迭代对象中的元素,只保留使给定函数返回 True 的元素。
  • 用法:常用于根据条件筛选出满足特定标准的元素。

示例代码

# 定义一个函数,判断数字是否为偶数
def is_even(x):
    return x % 2 == 0

# 使用 filter 函数保留偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(is_even, numbers))

print(even_numbers)  # 输出: [2, 4, 6]

使用场景

  • 当需要根据某个条件从可迭代对象中筛选出特定元素时,filter 非常适用,比如清理数据、提取符合标准的数据等。

3. reduce 函数

  • 定义reduce(function, iterable[, initializer]) 函数是一个在 functools 模块中定义的函数,它对可迭代对象中的元素进行累计处理,返回单一的结果。
  • 用法:通常用于需要将多个元素聚合成一个结果的场景。

示例代码

from functools import reduce

# 定义一个函数,用于累加两个数字
def add(x, y):
    return x + y

# 使用 reduce 函数对列表中的所有元素进行累加
numbers = [1, 2, 3, 4, 5]
sum_result = reduce(add, numbers)

print(sum_result)  # 输出: 15

使用场景

  • 当需要将可迭代对象中的多个元素聚合为一个值时,reduce 很适合,比如计算总和、乘积、最大值、最小值等。

总结

函数 定义 用法例子 使用场景
map 对可迭代对象的每个元素应用函数 list(map(square, numbers)) 批量转换数据,例如处理图像数据或格式化字符串
filter 过滤可迭代对象,只保留符合条件的元素 list(filter(is_even, numbers)) 数据清理、提取特定条件的元素
reduce 对可迭代对象进行累计处理 reduce(add, numbers) 聚合数据,例如计算总和、求积

这些函数可以使代码更加简洁、易读,提高数据处理的效率。

关注我

简书 | CSDN | 知乎 | 博客园| 公众号合集:热爱技术的小牛
热爱技术的小牛

本文由mdnice多平台发布

标签:map,函数,迭代,reduce,filter,numbers,搞懂
From: https://www.cnblogs.com/my-blogs-for-everone/p/18535411

相关文章

  • 【C++篇】无序中的法则:探索 STL之unordered_map 与 unordered_set容器的哈希美学
    文章目录C++`unordered_map`和`unordered_set`容器详解前言第一章:`unordered_map`和`unordered_set`的概念1.1`unordered_map`和`unordered_set`的定义1.2与`map`、`set`的区别第二章:`unordered_map`和`unordered_set`的构造方法2.1`unordered_map`......
  • 【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设
    【Linux】获得同一子网下当前在线设备IP/Latency/MAC通过nmap指定CIDR扫描当前在线设备通过路由器的后台,查看当前在线设备,受到网卡版本的影响,有时会有部分设备看不见MAC和分配的IP。此时,可以借助命令行工具扫描子网下所有连接的设备信息与通信状态。Nmap是一个强大的网......
  • ArcGIS006:ArcMap常用操作151-200例动图演示
    摘要:本文介绍了ArcMap邻域分析、栅格表面分析、水文分析、区域分析、提取分析等工具箱中的工具功能。包括计算图层间点、线、面要素间的距离、位置和角度,创建缓冲区,添加计算信息到属性表,分割面要素,编号,生成统计信息,计算几何测量值,按区域统计栅格数据、DEM高程等,使用DEM数据进......
  • 服务器是Ubuntu20.04,安装Colmap
    就下这一个东西,遇到的错误简直数不清,在这吐槽一下!顺便,分享一个最终成功的教程!!(虽然可能是玄学~)附上我跟着一步一步来最终下好的教程链接,亲测好用!!!https://blog.csdn.net/weixin_44172157/article/details/122203759其实中途还是发现了一个错误!和之前遇到的都一样,后面发现是我文件......
  • 想要硬件设计不用愁?首先要搞懂这三类GPIO!
    合宙低功耗4G模组经典型号Air780E,支持两种软件开发方式:一种是传统的AT指令;一种是基于模组做Open开发。传统AT指令的开发方式,合宙模组与行业内其它模组品牌在软件上区别不大,在硬件功耗上更有优势;模组Open开发,合宙采用的是LuatOS方式,相对C-SDK入门更简单,开发更方便,开发时间上也更......
  • 【Maple2023软件下载与安装教程】
     1、安装包 Maple2023:链接:https://pan.quark.cn/s/8141b75ee5b5提取码:d6AZMaple2022:链接:https://pan.quark.cn/s/c726906349f2提取码:geCPMaple2021:链接:https://pan.quark.cn/s/a5f710946c9a提取码:fGKBMaple2020:链接:https://pan.quark.cn/s/83fd1e860a16提......
  • 一篇帮你搞懂ECharts图表构建
    目录一、引入 主要功能和应用场景:完全版本:二、一个实例 1.大框架2.设置大标题3.设置提示标签4.设置每个柱形数据的背景颜色5.设置柱形数据背景边框6.设置图例小角标7.拖拽手柄8.设置X轴9.设置Y轴10.设置数据11.设置边框完整版本:一、引入 ‌ECharts‌是......
  • mapreduce案例_电信用户平均停留时间
    packagecom.wll.dianxin;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.......
  • mapreduce案例_用户停留时间关联城市名
    importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.lib.input.FileSplit;importorg.apache.hadoop.mapreduce.Job;impo......
  • C++之map容器
    map是C++STL(StandardTemplateLibrary)中的一种关联容器,用于存储键值对(key-valuepairs)。每个键(key)在map中都是唯一的,并且键值对会根据键的值进行排序(默认为升序)。map的内部实现通常为红黑树,因此它提供了高效的插入、删除和查找操作。主要特点键的唯一性:每个键在 ......