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 不同对象比较大小示例探讨
Aug 21 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
python实现学生信息管理系统源码
Feb 22 Python
python实现股票历史数据可视化分析案例
Jun 10 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将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
PHP可变变量学习小结
2015/11/29 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
js 利用className得到对象的实现代码
2011/11/15 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python反转序列的方法实例分析
2018/03/21 Python
python定时关机小脚本
2018/06/20 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
PHP面试题集
2016/12/18 面试题
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
自我评价中英文语句
2013/11/30 职场文书
寒假家长评语大全
2014/04/16 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
文艺节目主持词
2015/07/06 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS