Python中常见的序列主要有列表(list)、元组(tuple)和字符串(string)。关对于序列的遍历,Python推荐的是for…in…sequence语句做成员测试,这个语句其实和for…in…range()一样是按照索引顺序遍历的,但是用in语句的话不能直接使用索引值。

在实际应用中,遍历经常也要用到索引值,比如计数,统计进度等等。用range的话怎么看着都麻烦,其实可以使用enumerate()函数。

enumerate的意思是列举、枚举。

enumerate()函数时Python的内置函数。 
原理分析 
基本用法

s = [2,5,8,3,6,9]
for i in enumerate(s):print i

结果为:

(0, 2)
(1, 5)
(2, 8)
(3, 3)
(4, 6)
(5, 9)

按照一般的序列迭代方法,可以看出enumerate()函数的返回值是一个元组,元组构成为(index, value),也就是序列索引和值的元组。 
第二可选参数,解决索引从0开始输出的问题

enumerate()有两个参数序列和起始索引。 
即enumerate(sequence , index)

s = [2,5,8,3,6,9]
for i in enumerate(s, 1):print i

结果为:

(1, 2)
(2, 5)
(3, 8)
(4, 3)
(5, 6)
(6, 9)

这样就解决了索引从0开始,而我们习惯从1开始输出的问题。 
示例

下面以常见的序列,列表、元组、字符串为例简单说明enumerate()的使用方法。 
示例1 列表

s = [2,5,8,3,6,9]
for index, value in enumerate(s):print index, value

结果为:

0 2
1 5
2 8
3 3
4 6
5 9

示例2 元组

s = (2,5,8,3,6,9)
for index, value in enumerate(s):print index, value

结果为:

0 2
1 5
2 8
3 3
4 6
5 9

示例3 字符串

s = 'test'
for index, value in enumerate(s):print index, value

结果为:

0 t
1 e
2 s

python enumerate的详解相关推荐

  1. python20191031_20191031:Python取反运算详解

    20191031:Python取反运算详解 取反运算:~3 == 4 1.对于数字 3 =======>转换为二进制表示为011 2.对011取反为100 3.为什么表示-4 a.计算机用补码表 ...

  2. Python字符编码详解

    Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...

  3. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

  4. windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  5. python变量类型-Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  6. python安装教程windows-windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  7. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  8. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几 ...

  9. 代码检查规则:Python语言案例详解

    在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...

最新文章

  1. bootstrap 冻结表格,冻结表头
  2. 大多数的自动驾驶公司,注定要倒闭
  3. 第二讲:Android系统构架分析和应用程序目录结构分析
  4. 51单片机按键控制数码管0~9_51单片机外部中断
  5. opencv机器学习线性回归_Python机器学习之?线性回归入门(二)
  6. Tomcat10 下载和配置 Linux 环境
  7. anaconda3环境整体打包放在Spark集群上运行
  8. 第M题 快速幂详解!: 给出3个正整数A B C,求A^B Mod C。
  9. 关于testNG和JUnit的对比
  10. 华为荣耀盒子显示服务器忙,华为荣耀盒子m321连接后死机了怎么办?教你三大解决方法...
  11. 卫星运动的基础及GPS卫星星历
  12. java linux 时间戳转时间_Java时间和时间戳的相互转换
  13. Win10开启卓越性能模式
  14. php 获取新浪股票行情数据,获取新浪实时股票行情数据
  15. P3356 火星探险问题
  16. CF235C-Cyclical Quest
  17. 信息化建设规划_统筹规划精准发力打造信息化建设新篇章
  18. 移动100m宽带慢的要死_家里拉了100M的宽带,为什么网速还是那么慢?
  19. Mendix低代码开发
  20. TCP协议发送SKB时ip_summed成员的设置

热门文章

  1. [转]Kaldi语音识别
  2. 产品开发管理方法工具流程 pdf_HR必备薪酬和绩效管理方法论、工具、案例
  3. 【java笔记】IDEA debug调试
  4. 【二分法】计蒜客:气球消消乐
  5. LeetCode 647 回文子串
  6. 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld
  7. LIRe 源代码分析 4:建立索引(DocumentBuilder)[以颜色布局为例]
  8. ITU-T Technical Paper: QoS的构建模块与机制
  9. php 解析返回的xml,php解析xml的几种方式
  10. php微信自动登录,利用php怎么实现一个自动登录微信并获取昵称的功能