python进阶教程之循环相关函数range、enumerate、zip


Posted in Python onAugust 30, 2014

在“循环”一节,我们已经讨论了Python基本的循环语法。这一节,我们将接触更加灵活的循环方式。

range()

在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。

之前我们已经使用过range()来控制for循环。现在,我们继续开发range的功能,以实现下标对循环的控制:

S = 'abcdefghijk'

for i in range(0,len(S),2):

    print S[i]

在该例子中,我们利用len()函数和range()函数,用i作为S序列的下标来控制循环。在range函数中,分别定义上限,下限和每次循环的步长。这就和C语言中的for循环相类似了。

enumerate()

利用enumerate()函数,可以在每次循环中同时得到下标和元素:

S = 'abcdefghijk'

for (index,char) in enumerate(S):

    print index

    print char

实际上,enumerate()在每次循环中,返回的是一个包含两个元素的定值表(tuple),两个元素分别赋予index和char

zip()

如果你多个等长的序列,然后想要每次循环时从各个序列分别取出一个元素,可以利用zip()方便地实现:

ta = [1,2,3]

tb = [9,8,7]

tc = ['a','b','c']

for (a,b,c) in zip(ta,tb,tc):

    print(a,b,c)

每次循环时,从各个序列分别从左到右取出一个元素,合并成一个tuple,然后tuple的元素赋予给a,b,c

zip()函数的功能,就是从多个列表中,依次各取出一个元素。每次取出的(来自不同列表的)元素合成一个元组,合并成的元组放入zip()返回的列表中。zip()函数起到了聚合列表的功能。

我们可以分解聚合后的列表,如下:

ta = [1,2,3]

tb = [9,8,7]
# cluster

zipped = zip(ta,tb)

print(zipped)
# decompose

na, nb = zip(*zipped)

print(na, nb)

总结

range()

enumerate()

zip()

Python 相关文章推荐
Python模块学习 re 正则表达式
May 19 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
python查询sqlite数据表的方法
May 08 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
python list的index()和find()的实现
Nov 16 Python
python进阶教程之函数参数的多种传递方法
Aug 30 #Python
python进阶教程之模块(module)介绍
Aug 30 #Python
Python中的闭包实例详解
Aug 29 #Python
python进阶教程之文本文件的读取和写入
Aug 29 #Python
Python中__call__用法实例
Aug 29 #Python
python进阶教程之词典、字典、dict
Aug 29 #Python
python字符串排序方法
Aug 29 #Python
You might like
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
图文详解vue框架安装步骤
2019/02/12 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
python版简单工厂模式
2017/10/16 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
python颜色随机生成器的实例代码
2020/01/10 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
内衣营销方案
2014/03/15 职场文书
联谊会主持词
2014/03/26 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
党员转正意见怎么写
2015/06/03 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python