作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

在“循环”一节,我们已经讨论了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 indexprint 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)

# decomposena, nb = zip(*zipped)print(na, nb)

总结

range()

enumerate()

zip()

Python进阶05 循环设计相关推荐

  1. python进阶05并发之一基本概念

    原创博客地址:python进阶05并发之一基本概念 大多编程语言,一旦涉及并发,都会比较复杂,知识点也较多(大多为历史问题,很多技术点现在非常少使用了,但语言层面也提供支持,对于这些冷门点,只需要知道 ...

  2. Python进阶06 循环对象

    Python进阶06 循环对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这一讲的主要目的是为了大家在读Python程序的时 ...

  3. Python进阶06 循环对象与迭代

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循 ...

  4. pythonos pathjson_python进阶05 常用问题库(1)json os os.path模块

    python进阶05 常用问题库(1)json os os.path模块 一.json模块(数据交互) web开发和爬虫开发都离不开数据交互,web开发是做网站后台的,要跟网站前端进行数据交互 1.什 ...

  5. python学习笔记(15)循环设计

    python学习笔记(15)循环设计 原链:http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html 注意:zip()在python2 ...

  6. 怎么理解python循环_如何理解Python的循环设计

    在"循环"一节,我们已经讨论了Python基本的循环语法.这一节,我们将接触更加灵活的循环方式. range() 在Python中,for循环后的in跟随一个序列的话,循环每次使用 ...

  7. [转载] Python进阶:设计模式之迭代器模式

    参考链接: Python中的迭代器 在软件开发领域中,人们经常会用到这一个概念--"设计模式"(design pattern),它是一种针对软件设计的共性问题而提出的解决方案.在一 ...

  8. python 2048游戏的设计_Python练习:100行代码实现一个简易的2048游戏

    一.任务目标 1.一个在命令行下的2048游戏 2.主要实现功能:判断游戏是否结束:在随机空白位置生成新的数字:上下左右四个方向上进行平移数字并将能合并的数字进行合并:接收键盘输入:将数字阵列显示到命 ...

  9. Python自学路线图之Python进阶

    Python自学路线图的第二个阶段是Python进阶学习,自学完后需要掌握的Python技能: 1.自学Linux操作系统,熟练使用Linux操作系统: 自学网络编程,掌握网络编程相关技术, 能够实现 ...

最新文章

  1. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
  2. NB-IOT UE的小区接入过程
  3. python高级-模块(14)
  4. Python培训就业怎么样?
  5. .net framework 注册到IIS上
  6. 大数据可视化技术面临的挑战及应对措施
  7. C语言 string.h 中函数的实现
  8. Python求解线性方程组
  9. php ci框架 模板输出,CodeIgniter模板引擎使用实例
  10. 编译Linux 2.6内核
  11. 【软件质量】软件质量
  12. 在原有的基础之上,启用NAT模型
  13. win7 IIS安装与配置
  14. 如何实现批量替换文件夹名称?
  15. 打游戏哪种蓝牙耳机比较好?适合玩游戏的无线蓝牙耳机
  16. java 1 9随机数_Java-随机数详解
  17. mysql网站设计_Flask+Mysql搭建网站之网页设计
  18. FFMPEG将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法
  19. 7.4 FIN及其ACK的接收
  20. php安全新闻早八点-Microdoor-第三季

热门文章

  1. AndroidStudio直接通过gradle无mk编译生成so
  2. opus android编译,Mac系统opus Android编译集成
  3. python 16进制加法_在python中追加2个十六进制值
  4. (十四)访问标志 Access_flags
  5. Bootstrap 手风琴搭配导航条实现常用菜单栏
  6. Theano2.1.5-基础知识之打印出theano的图
  7. iOS 无限后台运行
  8. Android应用自动更新功能实现使用AsyncTask!
  9. html5常用的属性标签,HTML5常用标签及其属性设置
  10. 2021年河北高考成绩位次怎么查询,2021年河北高考一分一段表查询排名方法 成绩排名位次什么时候公布...