第43讲: Python使用map和filter函数遍历可迭代对象

news2024/11/20 15:33:55

文章目录

    • 1.遍历迭代对map和filter函数的区别
    • 2.使用map函数对可迭代对象进行遍历
    • 3.使用filter函数对可迭代对象进行遍历

1.遍历迭代对map和filter函数的区别

map和filter这两个函数都可以根据指定的另外一个函数,从而对指定的可迭代对象(列表、字符串、元组、字典、集合等)进行遍历,然后生产一个新的可迭代对象。

最核心的功能,就是根据指定的一个函数,对可迭代对象中的所有元素进行处理,然后返回一个新的可迭代对象。

两个函数的用法相同,都需要指定两个参数,第一个参数是指定函数名,第二个参数是指定可迭代对象。

map(函数, 可迭代对象)

filter(函数, 可迭代对象)

map函数与filter函数都是根据一个函数对可迭代对象中的所有元素进行处理,那么两者之间有什么区别呢?

  • 调用内置函数map后,会使用指定的函数对指定的可迭代对象中的每个元素,进行遍历处理,然后生成一个新的可迭代对象。
  • 调用内置函数filter后,会使用指定的函数对指定的可迭代对象中的每个元素,进行遍历处理,然后过滤掉函数处理结果为False的元素,生成一个新的可迭代对象。

2.使用map函数对可迭代对象进行遍历

我们前面学的ord函数一次只能对一个字符,返回其对应的ordinal value值,当我们学到map函数后,就可以利用map函数同时对多个字符使用ord函数查询其对应的ordinal value值。

map函数主要是根据它的遍历特性,利用指定的函数,对可迭代对象中的所有元素都进行了一遍处理。

print(map(ord, 'abcde67'))
#map函数返回值是一个迭代器对象  <map object at 0x0000023D0BD8E650>

#可以使用list将其转换成列表格式
print(list(map(ord, 'abcde67')))
#输出结果:[97, 98, 99, 100, 101, 54, 55]

结果如下,map函数根据我们指定的ord函数,对指定的可迭代对象字符串中所有的字符元素都进行了处理,然后使用list函数将其转换成列表。

image-20220815220115591

map函数在遍历的时候其实相当于这样做了:ord(a)、ord(b)、ord©,每次遍历都用指定的函数对可迭代对象中的元素进行了处理。

使用upper函数对字符串中每个字符进行处理,将其转换成的大写字母。

print(list(map(str.upper, 'abcde')))

image-20220815220403943

3.使用filter函数对可迭代对象进行遍历

调用内置函数filter后,会使用指定的函数对指定的可迭代对象中的每个元素,进行遍历处理,然后过滤掉函数处理结果为False的元素,生成一个新的可迭代对象。

filter函数遍历时,指定的函数对可迭代对象中的元素处理后,返回值为True,才会被列出来,返回值为False,则会被过滤掉。

我们可以指定方法str.isalpha,利用map和filter函数对可迭代对象中的元素进行处理,当元素都是字母时,才会返回True,否则就是False,filter函数会过滤掉返回值为Flase的元素。

同样的函数、同样的迭代器对象,我们观察map和filter遍历时,有什么区别。

print(list(map(str.isalpha, ['jiangxl', 'python', '1', '2', '3'])))

print(list(filter(str.isalpha, ['jiangxl', 'python', '1', '2', '3'])))

map函数无论指定的函数与元素处理后,是True还是False都会打印出来,而filter函数只会返回值为True的元素。

image-20220815221059647

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪款蓝牙耳机舒适度最好?舒适度好的蓝牙耳机推荐

蓝牙耳机现在早就成为年轻人生活必备品&#xff0c;尤其是在通勤路上、大街上&#xff0c;基本都随处可见耳朵上挂着的小蓝牙设备&#xff0c;本文针对每种类型的蓝牙耳机&#xff0c;推荐了几款佩戴舒适度高的蓝牙耳机。 第一款、南卡小音舱Lite2蓝牙耳机 售价&#xff1a;2…

LeetCode_二叉树_简单_112.路径总和

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum。判断该树中是否存在 根节点到叶子节点的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum。如果存在&#xff0c;返回 true&#…

【KVM虚拟化】· virsh文件管理

目录 &#x1f341;离线访问工具应用场景 &#x1f341;离线命令 &#x1f342;virt-inspector &#x1f342;virt-cat &#x1f342;virt-edit &#x1f342;virt-df &#x1f342;virt-copy-out &#x1f342;virt-copy-in &#x1f342;guestfish &#x1f342;guestmount &…

TCP协议补充实验

目录 一、理解CLOSE_WAIT状态 二、理解TIME_WAIT状态 解决TIME_WAIT状态引起的bind失败的方法 三、 理解listen的第二个参数 四、SYN洪水 五、TCP、UDP对比 六、优化UDP实现可靠传输&#xff08;面试题&#xff09; 一、理解CLOSE_WAIT状态 当客户端和服务器在进行TCP通…

记录--Vue3+TS(uniapp)手撸一个聊天页面

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 Vue3TS(uniapp)手撸一个聊天页面 前言 最近在自己的小程序中做了一个智能客服&#xff0c;API使用的是云厂商的API&#xff0c;然后聊天页面...嗯&#xff0c;找了一下关于UniApp(vite/ts)版本的好像不…

Linux常用命令——ifconfig命令

在线Linux命令查询工具 ifconfig 配置和显示Linux系统网卡的网络参数 补充说明 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息&#xff0c;在网卡重启后机器重启后&#xff0c;配置就不存在。要想将上述的配置信息永远的存的电…

如何用Facebook为你的跨境电商店铺进行引流?

对于跨境电商店铺来说&#xff0c;引流客户代表着潜在的商业机会和利润。当更多潜在客户访问你的店铺并下单购买产品时&#xff0c;这将增加你的销售额和利润&#xff0c;并帮助你的品牌影响力不断扩大。 一、Facebook广告付费玩法 1.创建一个Facebook商业页面&#xff1a;首先…

首发 | 人工智能赋能的未来作战构想(上): 海上作战篇

源自&#xff1a;中国指挥与控制学会 ▲图1&#xff1a;报告封面和封底 一、人工智能赋能改变战争形态 ▲图2&#xff1a;以AI赋能万物互联 二、人工智能赋能的海上作战 ▲图3&#xff1a;海上作战要保持持续有效的火力输出 &#xff08;一&#xff09;海上防御作战构想 ▲图4&…

MODBUS协议下,触摸屏与PLC能否实现无线通讯?

想要实现触摸屏与PLC之间的MODBUS无线通讯&#xff0c;就需要一个满足这两个设备通讯接口&#xff0c;并可在MODBUS协议下运行的通讯终端作为媒介&#xff0c;搭建起这两者之间的通讯桥梁。如果是使用威纶通触摸屏作为主站&#xff0c;三菱FX5U PLC作为从站&#xff0c;便可采用…

代码随想录-数组

学习《代码随想录》 理论基础什么是数组&#xff1f; 二分查找左闭右闭左闭右开 移除元素暴力法双指针法 长度最小的子数组暴力法滑动窗口 螺旋矩阵 理论基础 什么是数组&#xff1f; 数组是存储在连续内存空间上的相同类型数据的集合。 二分查找 有两种解法&#xff1a;左闭…

spring6概述

Spring6要求JDK最低版本是JDK17 Spring是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开…

阿里云李钟:弹性计算控制系统团队的提效之路

2023 年 3 月 25 日&#xff0c;“城市领航之夜第一期”活动在上海举行&#xff0c;阿里云弹性计算控制系统技术架构负责人李钟出席了本次活动并带来了《弹性计算控制系统团队提效之路》的主题演讲&#xff0c;为大家详细分享了阿里云弹性计算控制系统团队所面临的挑战、如何通…

计算机毕业论文选题推荐|软件工程|系列五

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)遥感图像的居民…

言之画: AI绘画平台

【产品介绍】 言之画是出门问问推出的AI绘画平台。支持二次元、蒸汽朋克、插画等 8 种创作风格。用户只需输入文字&#xff0c;「言之画」就能一次性生成 8 张光影逼真、细节丰富的 2K 高分辨率图像。 除了以文生图&#xff0c;它还拥有以图生图、动图生成、个性头像生成等 AI …

MATLAB 之 常用内部函数,运算,字符串和结构数据与单元数据

文章目录 一、常用内部函数1. 常用数学函数2. 矩阵的超越函数2.1 矩阵平方根2.2 矩阵对数2.3 矩阵指数2.4 普通矩阵函数 二、MATLAB 运算1. 算术运算1.1 基本算术运算1.2 点运算 2. 关系运算3. 逻辑运算 三、字符串1. 字符串的表示2. 字符串的操作2.1 字符串的执行2.2 字符串与…

ChatGPT下的自动化工具Auto-GPT、AgentGPT、BabyAGI和GodMode

ChatGPT 对于一个大目标来说&#xff0c;他是不知道怎么一步一步的帮我们构建出来。有了Auto-GPT、AgentGPT、BabyAGI和GodMode 这些自动化工具&#xff0c;我们只需要输入一个大目标&#xff0c;这些自动化工具能够帮我们一步一步轻松实现。 1.Auto-GPT 网址&#xff1a;htt…

C/C++每日一练(20230512) 成绩打印、补齐数组、水仙花数

目录 1. 成绩打印 ※ 2. 按要求补齐数组 &#x1f31f;&#x1f31f;&#x1f31f; 3. 水仙花数 ※ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 成绩打印 一个班有10个同学&am…

airserver7.2.7最新中文版下载及功能介绍

最近开会打算把手机投屏到自己的Mac上演示用&#xff0c;于是就打算用下听了很久好用但是一值没有使用的AirServer!十分简单的操作就可以完美的投屏到Mac电脑&#xff0c;而且不用像Mac自带的QuickTime用线连接手机!它可以把AirPlay / AirTunes上的音频、视频、照片、幻灯片还有…

母亲节祝福html源码,母亲节祝福html代码,母亲节表白妈妈代码,母亲节祝福网页代码

母亲节祝福html源码&#xff0c;母亲节祝福html代码&#xff0c;母亲节表白妈妈代码&#xff0c;母亲节祝福网页代码 运行截图 核心代码&#xff1a; <!DOCTYPE HTML> <html lang"zh-Hans"> <head><meta charset"utf-8"><meta…

我们选择护眼台灯的标准是什么?护眼台灯的国家标准

小时候在学校&#xff0c;父母跟老师经常强调“眼睛是心灵的窗户”要保护好眼睛&#xff0c;不管是在学校上学还是在家写作业时&#xff0c;都会很突然的听见“头抬高点”、“眼睛离远点”等类似的劝导&#xff0c;刚开始还不以为然&#xff0c;直到视力下降&#xff0c;带上了…