在“循环”一节,我们已经讨论了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的循环设计相关推荐

  1. python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环

    展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...

  2. python如何实现循环_如何构造python循环

    python中的循环语句可以分为for循环和while循环. for循环可以遍历任何序列的项目,如一个列表或者一个字符串. for循环的一般格式如下:for in : else: 实例>> ...

  3. python 切片_全面解读Python高级特性切片

    大家好,欢迎来到Crossin的编程教室! 众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组-)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slic ...

  4. 学习python课程_想学习Python吗? 这是我们的免费4小时互动课程

    学习python课程 Python is a popular, versatile and easy-to-learn language. It's the go-to language for AI ...

  5. python 代码_如何让Python代码加速运行?

    Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...

  6. 2018年python薪资_最好的Python:2017和2018年至今我最喜欢的文章集

    2018年python薪资 我打算发布此收藏集 (My intention with publishing this collection) Last year I only used Medium ...

  7. python处理速度_如何让Python处理速度翻倍?内含代码

    原标题:如何让Python处理速度翻倍?内含代码 作为在日常开发生产中非常实用的语言,有必要掌握一些python用法,比如爬虫.网络请求等场景,很是实用.但python是单线程的,如何提高python ...

  8. linux如何退出python编辑器_怎么退出python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! cmd中如何退出python (1)在命令行上输入exit() (2)在命令行上 ...

  9. python马尔可夫链_[译] 用 Python 实现马尔可夫链的初级教程

    马尔可夫链是通常用一组随机变量定义的数学系统,可以根据具体的概率规则进行状态转移.转移的集合满足 马尔可夫性质 ,也就是说,转移到任一特定状态的概率只取决于当前状态和所用时间,而与其之前的状态序列无关 ...

  10. 0基础学python培训班_[长文] 学Python不用培训班,一篇文章带你入门

    最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门.一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问题很多资料内容也很杂,从1+1到深度学习 ...

最新文章

  1. 机房收费系统之uml图——初版
  2. VS.Net中程序集的Debug版本和Release版本的区别
  3. 将ssm项目和普通java项目打包
  4. 测量ATMEGA8单片机IO口的输入输出内阻
  5. 首字母大写 -freeCodeCamp
  6. 【解惑】这么多技术我该怎么学 [转]
  7. 带卷积核的神经网络的迭代次数与收敛标准的关系
  8. 【LeetCode】- Search Insert Position(查找插入的位置)
  9. python数据科学指南是什么_《Python数据科学指南》——导读
  10. Android USB转串口通信开发基本流程
  11. wpf之DataTrigger 数据触发器
  12. 身为程序员的我们......
  13. printf标识总结
  14. 比CAM350好用的工具-DFM工具下载,PCB被板厂做坏了,谁的锅?
  15. oracle asm结构,深入了解Oracle ASM
  16. 【性能测试】性能测试中问题反思和心得
  17. x轴z轴代表的方向图片_x轴y轴z轴代表的方向_x轴y轴z轴代表的方向图
  18. python打印数字每行自增1个数
  19. 极性表面积与非极性表面积
  20. 计算机组成原理(详细)

热门文章

  1. 总结:PHP值得注意的几个问题
  2. ORA-07445 ERROR on auto execute of job 8913
  3. ASP.NET AJAX入门系列(8):自定义异常处理
  4. spring-boot 使用 main函数 无法启动的问题完美 解决方案。
  5. 用队列和栈的知识点解决迷宫问题
  6. 解决hadoop no dataNode to stop问题
  7. Ubuntu18.04 下联想电脑 无法连接WIFI问题解决
  8. 推翻相对论的专家,就差安排明天几点日出了
  9. 【报告分享】科技产业2021年投资策略:科技进步与中美再平衡下的新机遇.pdf(附下载链接)...
  10. EMD Earth Movers Distance