python入门笔记--循环(for...range\enumerate\zip)、列表推导

一、循环结构

>>> 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

常规方法:


使用列表推导


  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值