Python启航:30天编程速成之旅(第20天)- itertools
off999 2024-12-29 05:05 34 浏览 0 评论
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
前期基础教程:
「Python3.11.0」手把手教你安装最新版Python运行环境
讲讲Python环境使用Pip命令快速下载各类库的方法
Python启航:30天编程速成之旅(第2天)-IDE安装
【Python教程】JupyterLab 开发环境安装
Python启航:30天编程速成之旅(第20天)- itertools
引言
itertools 是 Python 的一个标准库,提供了一系列高效的迭代器函数,用于处理无限和有限的迭代器。本期课程将学习如何使用 itertools 模块中的各种函数来简化代码并提高性能。
导入itertools模块
首先,导入 itertools 模块:
import itertools基本迭代器函数
count(start, step)
count 函数创建一个无限迭代器,从 10 开始,每次增加 20,大于 20 结束。
for i in itertools.count(10, 2):
if i > 20:
break
print(i)cycle(iterable)
cycle 函数创建一个无限迭代器,遍历给定的可迭代对象,触发制定条件后停止。
for i in itertools.cycle(['A', 'B', 'C']):
if i == 'C':
break
print(i)repeat(element, times)
repeat 函数创建一个迭代器,重复返回给定的元素,次数由 times 参数指定。
for i in itertools.repeat('Hello', 5):
print(i)组合生成器函数
accumulate(iterable, func)
accumulate 函数返回累加值的迭代器,可以指定累加函数。
numbers = [1, 2, 3, 4, 5]
result = itertools.accumulate(numbers, lambda x, y: x + y)
print(list(result))chain(*iterables)
chain 函数将多个可迭代对象连接成一个迭代器。
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
result = itertools.chain(numbers1, numbers2)
print(list(result))combinations(iterable, r)
combinations 函数生成所有长度为 r 的组合。
letters = ['a', 'b', 'c']
result = itertools.combinations(letters, 2)
print(list(result))permutations(iterable, r=None)
permutations 函数生成所有长度为 r 的排列。
letters = ['a', 'b', 'c']
result = itertools.permutations(letters, 2)
print(list(result))product(*iterables, repeat=1)
product 函数生成笛卡尔积。
numbers = [1, 2]
letters = ['a', 'b']
result = itertools.product(numbers, letters)
print(list(result))过滤器生成器函数
filterfalse(predicate, iterable)
filterfalse 函数返回一个迭代器,其中包含不满足谓词函数的元素。
numbers = [1, 2, 3, 4, 5]
result = itertools.filterfalse(lambda x: x % 2 == 0, numbers)
print(list(result))dropwhile(predicate, iterable)
dropwhile 函数跳过可迭代对象中满足谓词函数的元素,直到遇到第一个不满足的元素。
numbers = [1, 2, 3, 4, 5]
result = itertools.dropwhile(lambda x: x < 3, numbers)
print(list(result))takewhile(predicate, iterable)
takewhile 函数返回一个迭代器,其中包含满足谓词函数的元素,直到遇到第一个不满足的元素。
numbers = [1, 2, 3, 4, 5]
result = itertools.takewhile(lambda x: x < 3, numbers)
print(list(result))islice(iterable, start, stop, step)
islice 函数返回一个切片迭代器,类似于列表切片。
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = itertools.islice(numbers, 2, 7, 2)
print(list(result))其他有用的功能
starmap(function, iterable)
starmap 函数类似于 map,但它接受一个可迭代对象,其中每个元素都是一个元组,元组中的元素作为单独的参数传递给函数。
def add(x, y):
return x + y
pairs = [(1, 2), (3, 4), (5, 6)]
result = itertools.starmap(add, pairs)
print(list(result))zip_longest(*iterables, fillvalue=None)
zip_longest 函数类似于 zip,但它可以处理不同长度的可迭代对象,并使用 fillvalue 填充较短的可迭代对象。
numbers = [1, 2, 3]
letters = ['a', 'b', 'c', 'd']
result = itertools.zip_longest(numbers, letters, fillvalue='x')
print(list(result))实战示例
组合生成器示例
假设你需要生成所有长度为 3 的字符串组合,每个字符来自不同的集合。
digits = ['1', '2', '3']
letters = ['a', 'b']
symbols = ['!', '@']
result = itertools.product(digits, letters, symbols)
for combination in result:
print(''.join(combination))过滤器生成器示例
假设你需要从一个列表中筛选出所有的质数。
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
numbers = range(1, 20)
primes = itertools.filterfalse(lambda x: not is_prime(x), numbers)
print(list(primes))总结
通过本教程,相信大家已经学会了如何使用 Python 标准库 itertools 中的各种函数来处理迭代器。itertools 模块提供了许多高效且功能强大的工具,可以帮助你简化代码并提高性能。
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
相关推荐
- 下载软件的app大全(下载软件的app大全免费)
-
中国最常见的目前是迅雷下载软件。官网可以下载到正常的免费版本。他支持ftphttpbt磁力链接等多种形式的下载。国外的有bitcome。电驴和电骡等多种形式的下载软件。他们都可以满足日常的下载要求,...
- wifi贴小程序搭建需要多少钱
-
回答如下:要搭建自己的WiFi小程序,需要以下步骤:1.获得开发资格:首先需要注册成为开发者,获得小程序的开发资格。2.编写代码:使用微信小程序的开发工具,编写WiFi小程序的前端和后端代码。3....
- 外网服务器地址(外网服务器地址ip大全)
-
要弄懂这个问题,你首先要了解什么叫内网,什么叫外网,什么叫服务器,服务器在网络中所扮演的是什么角色,内网:就是指内部网络,窄义上的内网就是指中小型的局域网外网:就是指在你办公网络之外能访问到的网络...
- 360卸载不了的软件怎么办(用360卸载软件卸载不了)
-
开启了自我保护,关闭即可。解决方法如下:准备材料:360安全卫士、电脑1、在电脑上打开安全卫士,进去之后,点击右上方的列表图标,选择设置,2、进去安全卫士设置界面之后,点击安全防护中心,3、进去安全防...
-
- 联想电脑u盘启动不了(联想电脑为什么u盘启动不了)
-
1,启动计算机,并按住DEL键不放,但是也有按其它键的,所以请根据提示,直到出现BIOS设置窗口。2,键盘方向键向右移动到BIOS"Startup"菜单,然后选择“CMS”按回车键,然后选择"CMS"里面的Enabled。3,在对上面的操作...
-
2026-01-03 02:03 off999
- 海马苹果助手官方下载(海马苹果助手官方正版)
-
除了官方版,苹果其他服务器互通吧好像,只是不能换服务器登录你好;根据你的提示,可能是你的手机系统不正常蚂蚁浏览器,你可以现在一个手机QQ浏览器,它的体积小,功能强大,还特别的节省流量,它使用自主研发的...
- wifi恢复出厂设置后上不了网
-
恢复出厂设置后,路由器的网络设置也被清空了,需要重新设置账号和密码等信息并配置网络。还需要确认路由器的网线连接是否正确,以及是否有其他网络设备干扰。 如果重新配置还是连不上网不能用,可能需要...
- 联想笔记本蓝屏怎么解决(联想笔记本蓝屏怎么解决方法)
-
回答如下:如果您的联想笔记本电脑出现蓝屏问题,可以尝试以下解决方法:1.重启电脑:尝试简单的重启电脑,看是否可以解决问题。2.检查硬件:检查您的笔记本电脑是否有硬件故障。例如,您可以拔下所有外接设...
- 微星显卡型号档次梯队(微星显卡大全)
-
2019年微星新出的显卡主要系列划分:VENTUS(万图师):入门级版本,也有人说是丐版,用料一般。ARMOR(装甲师):中低版本,做工用料主流,比丐版强一点。DUKE(暗黑龙爵):中等版本,做工用料...
- 腾达扩展器a12设置(腾达扩展器设置方法)
-
1、检查扩展器的WiFi是否正确无线扩展器连接的是上端的WiFi,然后再转发出新的WiFi。所以,必须要知道正确的上端WiFi信息,比如WiFi名称和密码。解决方法:用手机连接上端WiFi,登录到这个...
- win7 旗舰版32位密钥(win7旗舰版密钥32位激活不了)
-
可以win7旗舰版32位产品密钥:1、TG664-TJ7YK-2VY3K-4YFY6-BCXF4;2、MVG64-RQDVY-KB9RM-MX9WT-MW824;3、TDTY2-6HJ49-46PCK...
- win7下安装ghostxp(win7安装方法ghost)
-
在win7家庭版电脑中安装虚拟xp系统方法:1.首先安装windows6.1-kb958559-x86-refreshpkg补丁。2.安装完成后,需要重启电脑。3.重启电脑,再安装windowsxpm...
- 电脑怎么锁屏快捷键(暂时离开电脑怎么锁屏快捷键)
-
计算机锁屏的快捷键在不同的操作系统上可能会有所不同,但在Windows系统中通常是“Windows键+L”组合键。当您按下这个组合键时,计算机会立即锁定屏幕,需要输入密码才能解锁。这个快捷键可以方便地...
- microsoft+teams+meeting怎么加入会议
-
teams手机点击加入会议没有反应原因和解决方法如下:1.时区不对,把电脑屏幕右下角时区调整好即可进入TeamsPC版。2.会议主办方的问题。3.MicrosoftTeams客户端的大多数问题都...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
