for迭代

Python中最简单的循环机制是 while,打开交互式解释器,执行1到的5的循环

>>> count=1
>>> while count<=5:
... print count
... count+=1
...
1
2
3
4
5

【使用break跳出循环】

如果你想要循环在某一条件下停止,但不确定在哪次循环跳出,可以在无限循环中使用break语句。下面我们铜鼓python的input()函数从键盘输入一行字符串,然后将字符串首字母转化成大写输出,当输入的一行为字符q,跳出循环;

>>> while True:
... stuff=raw_input('string to capitalize[type q to quit]: ')
... if stuff=="q":
... break
... print (stuff.capitalize())
...
string to capitalize[type q to quit]: test
Test
string to capitalize[type q to quit]: qq
Qq
string to capitalize[type q to quit]: q

使用continue跳出循环开始`

有时我们不想结束整个循环,仅仅向跳到下一轮循环的开始,下面一个例子,读入一个整数,如果它是奇数则输出他的平方数,如果是偶数则跳过,使用q来退出循环;

>>> while True:
value=raw_input('please input the number[type p to quit]: ')
if value=="q":
break
number=int(value)
if number%2==0:
continue
print (number ,"squared is ",number*number) please input the number[type p to quit]: 3
(3, 'squared is ', 9)
please input the number[type p to quit]: 2
please input the number[type p to quit]: q

列表,字符串,元祖,字典和集合等都是python可迭代的对象,元祖或者列表再依次迭代过程中产生一项,而字符串迭代会产生一个字符;

>>> word='cat'
>>> for letter in word:
... print letter
...
c
a
t

对字典进行迭代将返回字典中的键

>>> accusation={'room':'ballroom','weapon':'lead pipe','person':'COl.mustard'}
>>> for card in accusation:
... print card
...
person
weapon
room

如果想对字典的值进行迭代,可以使用字典的values()函数

>>> for card in accusation.values():
... print card
...
COl.mustard
lead pipe
ballroom

如果想返回健值对,可以使用字典的items()函数

>>> for item in accusation.items():
... print item
...
('person', 'COl.mustard')
('weapon', 'lead pipe')
('room', 'ballroom')

【使用range()生成自然数列】

>>> for x in range(0,3):
... print x
...
0
1
2

下面是如何从2到0的反向创建序列:

>>> for x in range(2,-1,-1):
... print x
...
2
1
0

下面的代码将step设置为2.得到1到10的偶数

>>> list(range(0,11,2))
[0, 2, 4, 6, 8, 10]

【使用zip()并行迭代】

Zip()函数对多个序列进行并行迭代

>>> days=['Monday','Tuesday','Wednesday']
>>> fruit=['banana','orange','petch']
>>> drinks=['coffee','tea','beer']
>>> for day,fruits,drink in zip(days,fruit,drinks):
... print (day,":drink",drink,"--eat:",fruits)
...
('Monday', ':drink', 'coffee', '--eat:', 'banana')
('Tuesday', ':drink', 'tea', '--eat:', 'orange')
('Wednesday', ':drink', 'beer', '--eat:', 'petch')

Zip()函数在最短序列用完时就会停止,

dict()函数会将两项序列比如元祖,列表,字符串,创建一个字典,同时使用zip()函数可以遍历多个序列,在具有相同移位的项之间创建元祖。

>>> english='Monday','Tuesday','Wednesday'
>>> french='Lundi','Mardi','Mercredi'
>>> list(zip(english,french))
[('Monday', 'Lundi'), ('Tuesday', 'Mardi'), ('Wednesday', 'Mercredi')]

配合使用dict()函数和zip()函数的返回值可以得到一本微型的英法字典

>>> dict(zip(english,french))
{'Tuesday': 'Mardi', 'Wednesday': 'Mercredi', 'Monday': 'Lundi'}

【其他方式的迭代】

列表推导式:
创建一个1到5的偶数列表
>>> a_list=[number for number in range(1,6) if number%2==1]
>>> a_list
[1, 3, 5]

字典推导式

最简单的例子就像是{key_expression: value_expression for expression in iterable}

使用字典推导创建字典squares,把0-9内的整数作为健,每个健的平方作为对应的值

>>> squares={key:key*key for key in range(10)}
>>> squares
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
>>> >>> word='letters'
>>> letter_count={letter:word.count(letter) for letter in word}
>>> letter_count
{'s': 1, 'r': 1, 'e': 2, 'l': 1, 't': 2}

对字符串letters出现的字母进行了循环,计算每个字母出现的次数

for迭代的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. IteratorPattern(迭代子模式)

    /** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLL ...

  3. JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)

    1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法.   2.有时候需要传递大量可选参数的情形时,一 ...

  4. python征程3.1(列表,迭代,函数,dic,set,的简单应用)

    1.列表的切片. 1.对list进行切片.'''name=["wangshuai","wangchuan","wangjingliang", ...

  5. 让产品有效迭代,前端A/B Testing的简单实现

    A/B Testing简介 互联网产品的迭代速度很快,往往一周一小发布,一月一大发布,产品提出的种种需求,哪些改动是提升产品体验的,哪些是阻碍产品进步的,如果没有数据可以参考,仅仅是靠拍脑袋的话,对产 ...

  6. JAVA中的for-each循环与迭代

    在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 ...

  7. 迭代字典中的key和value

    字典是python中十分重要的一个内容. 今天我们来谈谈,在一个 for 循环中,能否同时迭代 key和value?当然可以咯. dict 对象的 items() 方法返回的值: >>&g ...

  8. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  9. ICP算法(Iterative Closest Point迭代最近点算法)

    标签: 图像匹配ICP算法机器视觉 2015-12-01 21:09 2217人阅读 评论(0) 收藏 举报 分类: Computer Vision(27) 版权声明:本文为博主原创文章,未经博主允许 ...

  10. Python迭代器,可迭代对象,生成器

    迭代器 迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的界面,设计人员无需关心容器物件的内存分配的实现细节. ...

随机推荐

  1. vue组件化之模板优化及注册组件语法糖

    vue组件化之模板优化及注册组件语法糖 vue组件化 模板 优化  在 https://www.cnblogs.com/singledogpro/p/12054895.html 这里我们对vue.js ...

  2. Hidden的应用

    在写jsp中如果一个 请求的参数(例如:paramTypeCode)不能在另一个请求中使用,我们为了能让他在请求中使用可以利用隐藏域来表示,下面介绍他的用法: 1    <input type= ...

  3. 常用IDE 教程(IntelliJ IDEA、Android Studio、Chrome)

    1.IntelliJ IDEA 使用教程 http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/ 2.Chrome 开发工具指南 htt ...

  4. [VBA]去重汇总

    问题描述:汇总多个工作表的指定字段到sheet1里面,并去除重复的字段内容. Sub 去重汇总() Dim sht As Worksheet, j As Integer, x As Integer S ...

  5. Jmeter(一) - 调用数据的参数化

    1. 做性能测试, 不可避免的一点一定会有使用不同的用户密码进行登陆. 如何使登陆用户参数化呢?

  6. 四十一:数据库之SQLAlchemy之limlt、、slice、offset及切片

    一:limit:限制每次查询的时候查询数据的条数二:slice:查一个区间的数据,slice(起,止)三:offset:限制查找数据的时候过滤掉前面多少条四:切片:对query对象切实获取想要的数据 ...

  7. I/O检测介绍

    I/O性能监测可总结如下:* 任何时间出现CPU等待IO,说明磁盘超载.* 计算出你的磁盘可维持的IOPS值.* 判定你的应用是属于随机磁盘访问型还是有序型.* 通过对比等待时间和服务时间即可判断磁盘 ...

  8. python一些包

    jieba结巴 github上已经够详细了https://github.com/vinta/awesome-python

  9. java:Topic About(猴子吃桃,快速排序,选择排序,插入排序)

    1. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...

  10. 手机app打开的web,在打开chrome浏览器

    手机app打开的web在,打开chrome浏览器 <a href='intent://#Intent;action=android.intent.action.VIEW;scheme=googl ...