一、循环结构
>>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]
1.for i in range(10)使用序列的每个元素进行循环:
或直接读取
>>> for i in 'abcd':
print i
a
b
c
d
for i in ['abc','def']:
print i
abc
def
>>> a=['abc','def']
>>> for i in range(len(a)):
print a[i]
abc
def
2.for i in range(0,len(q),2)使用序列的下标进行循环:
3.for (index,char) in enumerate(S)同时使用下标和元素进行循环
4.for (a,b,c) in zip(ta,tb,tc):从多个等长序列中取一个元素作为新序列
二、循环结构原理:自动调用循环对象的next方法。
循环对象--for自动调用循环对象的next方法,直到出现StopIteration停止循环
循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误。
当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。
如循环对象:f=open(),返回的实际上是一个循环对象,包含有next()方法。等于for结构自动调用next()方法,将该方法的返回值赋予给line。
三、生成器--用户自己生成一个循环对象
和函数定义类似,只是在return的地方改为yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。
四、列表推导--快速生成列表
列表推导(List comprehension)的作用是为了更方便地生成列表(list)
如一个list变量的元素均为数字,如果需要将每个元素的值乘以2并生成另外一个list
常规方法:
使用列表推导