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 字符串格式化代码
Mar 17 Python
Python中DJANGO简单测试实例
May 11 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
在Python中使用gRPC的方法示例
Aug 08 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
python 实现兔子生兔子示例
Nov 21 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
如何用Python和JS实现的Web SSH工具
Feb 23 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&&mysql)五
2006/10/09 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
python显示生日是星期几的方法
2015/05/27 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
python如何爬取个性签名
2018/06/19 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
python如何保证输入键入数字的方法
2019/08/23 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
英语专业个人求职自荐信
2013/09/21 职场文书
银行求职信范文
2014/05/26 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书