首页 > 编程语言 >Effective Python:第7条 尽量用enumerate取代range

Effective Python:第7条 尽量用enumerate取代range

时间:2024-04-18 16:22:21浏览次数:35  
标签:Effective iterator Python 生成器 value range enumerate tb

Python有个内置的函数,叫作enumerate。enumerate能够把任何一种迭代器(iterator)封装成惰性生成器(lazy generator)。这样的话,每次循环的时候,它只需要从iterator里面获取下一个值就行了,同时还会给出本轮循环的序号,即生成器每次产生的一对输出值。下面通过内置的next函数手动推进enumerate所返回的这个iterator,给大家演示enumerate的原理。

用法:

tb = [1, 2, 3]
# 可同时拿下标索引和对应的值
for i, value in enumerate(tb):
    print(i, value)  # 输出0,1
    break
# 也可自定义起始序号
for i, value in enumerate(tb, 4):
    print(i, value)  # 输出4, 1
    break

 

标签:Effective,iterator,Python,生成器,value,range,enumerate,tb
From: https://www.cnblogs.com/guo126/p/18143745

相关文章

  • 推荐一个计算Grad-CAM的Python库
    前言类激活图CAM(classactivationmapping)用于可视化深度学习模型的感兴趣区域,增加了神经网络的可解释性。现在常用Grad-CAM可视化,Grad-CAM基于梯度计算激活图,对比传统的CAM更加灵活,且不需要修改模型结构。虽然计算grad-cam并不复杂,但是本着能导包就导包的原则,想着去用现成的......
  • Effective Python:第6条 把数据结构直接拆分到多个变量里,不要专门通过下标访问
    使用拆分(unpacking),就可以把元组里面的元素分别赋给多个变量。优点:1,通过unpacking来赋值要比通过下标去访问元组内的元素更清晰,而且这种写法所需的代码量通常比较少。2,便于原地交换两个变量;tb=[1,2]tb[0],tb[1]=tb[1],tb[0]print(tb)3,for循环或者类似的结构(例如推......
  • python包:matplotlib
    1):matplotlib是一个python2D绘图库,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。Matplotlib是整个包,pyplot是Matplotlib中的一个模块,并且pylab是一个安装在一起的模块。 https://matplotlib.org/2:使用https://zhuanlan.zhihu.com/p......
  • python --多个叠加装饰器
    defdeco1(func1):defwrapper1(*args,**kwargs):print("运行deco1_wrapper1")res1=func1(*args,**kwargs)returnres1returnwrapper1defdeco2(func2):defwrapper2(*args,**kwargs):print("运行deco2_wra......
  • blender python api 使用脚本修改动画关键帧的属性值
    1.代码1-将动画关键帧中的所有Y轴都设置为1.0,代码:importbpy#设置重置到的Y坐标值reset_to=1.0#遍历所有当前选中的对象forobjectinbpy.context.selected_objects:#如果对象没有动画,我们也应该重置其Y坐标object.location.y=reset_to#检......
  • 对大量ip:port进行批量telnet检测的python脚本
    对大量ip:port进行批量telnet检测的python脚本telnet_test.py#导入socket模块,用于网络通信importsocket#定义一个函数,用于测试Telnet连接是否成功deftest_telnet(ip,port):try:#尝试创建到指定IP和端口的连接socket.create_connection((ip,po......
  • python学习第一天
    学习一门技术,我们都要知道三个问题。为什么要学习?优点缺点是?怎么入门?python有很强的,就业性,学习完全是为了未来ai趋势做迎合,同样也是基于爱好站在了人工智能和大数据的风口上,站在风口上,猪都能飞起来。优点:简单上手,功能强大,库多缺点:速度慢,代码不能加密2、python的第一个......
  • 基于python的文件seek和tell实例解析
    一概念AF.seek(偏移量,whence=相对位置)偏移量大于0的数代表向文件末尾方向移动的字节数小于0的数代表向文件头方向中移动的字节数相对位置0代表从文件头开始偏移1代表从文件当前读写位置开始偏移2代表从文件尾开始偏移Btell函数能够返回指针......
  • 【Python微信机器人】写一个监控采集公众号文章的插件
    原文链接:https://mp.weixin.qq.com/s/f8zbM6wMld3koqjaFbCuxw前言弄了个视频号下载后,同一个问题每天都会被问,回答的有点烦了。想了想根本原因还是缺少一个交流平台,微信群的话,刚进群的看不到之前的聊天记录。想整个知识星球,发现只能弄个收费的,免费的需要激活码才能创建。而有......
  • blender python api 使用脚本批量对obj物体进行渲染(obj所在目录要有与之对应的mtl文件
     代码:importbpy#导入Blender的PythonAPI接口importpathlib#导入pathlib模块,用于操作文件路径#设置OBJ文件所在的目录路径obj_root=pathlib.Path('D:\\ceshi')#注意Windows路径中的斜杠需要转义#取消选择场景中的所有物体,以便导入时不会与已选择的物体冲......