1 enumerate()函数

  • enumerate()是python的内置函数
  • enumerate在字典上是枚举、列举的意思
  • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  • enumerate多用于在for循环中得到计数: for...in enumerate()

1.2 enumerate()用法

  • 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
for index in range(len(list)):print(index, list[index])# result/Users/i-mamba/opt/anaconda3/envs/DeepLearning/bin/python3.7 /Users/i-mamba/修仙之路/代码篇/手提包检测分割/codes/question.py
0 星期一
1 星期二
2 星期三
3 星期四
4 星期五
5 星期六
6 星期日Process finished with exit code 0
  • 上述方法有些累赘,利用enumerate()会更加直接和优美:
list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
for index, item in enumerate(list):print(index, item)# result/Users/i-mamba/opt/anaconda3/envs/DeepLearning/bin/python3.7 /Users/i-mamba/修仙之路/代码篇/手提包检测分割/codes/question.py
0 星期一
1 星期二
2 星期三
3 星期四
4 星期五
5 星期六
6 星期日Process finished with exit code 0
  • enumerate还可以接收第二个参数,用于指定索引起始值,如:
list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
for index, item in enumerate(list, 1):print(index, item)# result/Users/i-mamba/opt/anaconda3/envs/DeepLearning/bin/python3.7 /Users/i-mamba/修仙之路/代码篇/手提包检测分割/codes/question.py
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
7 星期日Process finished with exit code 0
  • 在深度学习的经常用于索引数据集:
import osimages = os.listdir('../data/train/images')
labels = os.listdir('../data/train/masks')
list = []
for i in range(len(images)):list.append(('../data/train/images/' + images[i], '../data/train/masks/' + labels[i]))for idex, (img, target) in enumerate(list):print(idex, img, target)# 等价于:for idex in range(len(list)):print(idex, list[idex])# result:只展示了前10个索引/Users/i-mamba/opt/anaconda3/envs/DeepLearning/bin/python3.7 /Users/i-mamba/修仙之路/代码篇/手提包检测分割/codes/question.py
0 ../data/train/images/63.jpg ../data/train/masks/63.jpg
1 ../data/train/images/189.jpg ../data/train/masks/189.jpg
2 ../data/train/images/77.jpg ../data/train/masks/77.jpg
3 ../data/train/images/162.jpg ../data/train/masks/162.jpg
4 ../data/train/images/176.jpg ../data/train/masks/176.jpg
5 ../data/train/images/88.jpg ../data/train/masks/88.jpg
6 ../data/train/images/348.jpg ../data/train/masks/348.jpg
7 ../data/train/images/360.jpg ../data/train/masks/360.jpg
8 ../data/train/images/406.jpg ../data/train/masks/406.jpg
9 ../data/train/images/412.jpg ../data/train/masks/412.jpg
10 ../data/train/images/374.jpg ../data/train/masks/374.jpg

两种循环写法是等价的,第一种更优美点。

参考:https://blog.csdn.net/churximi/article/details/51648388

2 for...in()

此函数只能遍历列表中的元素,不会获得索引值。

3 for...in zip()

在for循环里zip()函数用来并行遍历列表。

栗子:

s = ["1", "2", "3", "4", "5"]
t = ["a", "b", "c", "d", "e"]for x, y in zip(s, t):print(x+"-"+y)print("######")u = {"1", "2", "3", "4", "5"}
v = {"a", "b", "c", "d", "e"}for x, y in zip(u, v):print(x+"-"+y)

result:

1-a
2-b
3-c
4-d
5-e
######
1-e
2-c
4-d
5-a
3-b

参考:https://blog.csdn.net/zhangphil/article/details/90053306

Python:for...in range() 、 for...in enumerate() 、for...in() 、for...in zip()的用法相关推荐

  1. python中range 10 0_如何在python中使用range方法

    如何在python中使用range方法 发布时间:2021-01-05 16:55:23 来源:亿速云 阅读:94 作者:Leah 如何在python中使用range方法?很多新手对此不是很清楚,为了 ...

  2. pandas数据结构:Series/DataFrame;python函数:range/arange

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  3. [小笔记]TypeScript/JavaScript模拟Python中的Range函数

    [小笔记]TypeScript/JavaScript 模拟Python中的Range函数 李俊才/CSDN博客 CSDN用户名:jcLee95 邮箱:291148484@163.com 原创不易,感谢 ...

  4. Python中的range函数

    大家好,我是翔宇!今天我们聊聊Python中很重要的range对象!(本文章基于Python3环境,Python2环境下的range会有所不同,但并不影响我们使) range对象 1.range对象是 ...

  5. Python语言学习之字母E开头函数使用集锦:endswith使用用法之详细攻略

    Python语言学习之字母E开头函数使用集锦:endswith使用用法之详细攻略 目录 endswith用法之详细攻略 enumerate()函数 endswith用法之详细攻略 if my_file ...

  6. eval()函数和zip()函数用法、enumerate()

    str():把字典.元组.列表转换为字符串 eval():字符串转换为字典.元组.列表 eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果.即变量赋值时,等号右边的表 ...

  7. zip在python中的用法_Python中zip()函数用法实例教程

    本文实例讲述了Python中zip()函数的定义及用法,相信对于Python初学者有一定的借鉴价值.详情如下: 一.定义: zip([iterable, ...])zip()是Python的一个内建函 ...

  8. python print用法举例_【Python】】print(\033[1;33m HI,Girl~ \033[0m \n);用法举例

    [Python]]print("\033[1;33m HI,Girl~ \033[0m \n");用法 例一: print("\033[0;31m Hi, Girl~ \ ...

  9. Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略

    Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略 目录 logging日志用法之详细攻略 logging日志用法之详细攻略 K Llogging.basicConfig( ...

  10. Python遍历目录下的文件(os.walk 、os.listdir的用法)

    Python遍历目录下的文件(os.walk .os.listdir的用法) 最近想从一个目录转移一些文件到另外一个目录,因为文件有指定的后缀,所以想着用python来转移,不做cv工程师,那就涉及到 ...

最新文章

  1. 使用Python判断俩张图像相同或以某种方式相似
  2. Number of 1 bits
  3. python读取excel-python 读取 Excel
  4. 吐槽express 中间件multer
  5. oracle重做日志文件版本不一致问题处理
  6. C# 学习笔记(16)ComboBox下拉列表框宽度自适应
  7. poj3258 River Hopscotch (二分搜索,考虑最大值最小问题)
  8. 大量数据生成excel时候造成jvm内存泄漏问题的解决与测
  9. Windows Service下的Timer计时器的使用
  10. 漫画:如何破解MD5算法
  11. Entity Framework(二)
  12. POJ 3744:Scout YYF I 概率DP+特征方程+快速幂
  13. U3D性能分析 Profiling
  14. java8彩蛋_随笔,JDK8的新时间工具类
  15. hdu1708(C++)
  16. Web安全漏洞介绍及防御-文件上传漏洞
  17. 初学JAVA项目(四、魔域:文字RPG游戏)
  18. 9.0系统XPOSED框架安装经验
  19. JavaScript中阻止事件冒泡的浏览器兼容
  20. Windows10开机进不了BIOS的解决办法

热门文章

  1. Java中反射机制入门
  2. IT30: 数字化转型之路
  3. 开源公告|微信云端深度学习推理框架WeChat TFCC开源啦!
  4. 微信 云端搭建小程序概述
  5. 程序员不要总想着四两拨千斤
  6. 答题器——游戏工作室的亲密搭档!
  7. [原] 写作及开发环境设置
  8. Boot Option中没有USB启动选项的解决办法
  9. 解决%d format: a number is required, not str问题【一试灵】
  10. 如何释放计算机内存吗,教您如何有效释放计算机内存空间!