python循环函数迭代_Python里的循环与迭代函数(下)

zip( ) 和 izip( )函数

当循环迭代两个以上的序列时,例如,写一个下面这样的循环,每次迭代获得不同序列中的元素:

# -*- coding:utf-8 -*-

title = ['one', 'two', 'three']

author = ['Jack', 'Carl', 'David']

i = 0

while i < len(title) and i < len(author):

x = title[i] # 获取title的一个元素

y = author[i] # 获取author的一个元素

print '第%d组title:%s,author:%s' % (i+1, x, y)

i += 1

使用zip()函数可以简化这段代码,例如:

# -*- coding:utf-8 -*-

title = ['one', 'two', 'three']

author = ['Jack', 'Carl', 'David']

i = 0

for x, y in zip(title, author):

print '第%d组title:%s,author:%s' % (i + 1, x, y)

i += 1

zip( s , t ) 将序列是 s 和 t 组合为一个元组序列 ( s[0] , t[0] )、( s[1] , t[1] )、( s[2] , t[2] )等,如果 s 和 t 的长度不等,则至用完长度最短的索引为止。使用zip( )函数时需要注意一点,即在Python 2 中,它会将的元素完全消耗尽,创建一个元组的列表。函数itertools.izip( )实现的效果与zip相同,但一次值生成一个元组,而不是创建一个元组列表。

break 语句

使用break语句可从循环体中跳出来。例如下面代码的功能是从文件中读取文本行,直到遇到空的文本行为止:

# -*- coding:utf-8 -*-

for line in open('test.txt', 'r'):

stripped = line.strip()

if not stripped:

break #遇到一个空行,停止读取

print(stripped)

continue 语句

使用continue语句可以跳到循环的下一个迭代(跳过循环体中的余下代码)。例如,如下代码跳过一个文件中的所有空行:

# -*- coding:utf-8 -*-

for line in open('test.txt','r'):

stripped=line.strip()

if not stripped:

continue #跳过空行

print stripped

break和continue语句仅应用于正在执行的最内层循环。如果需要跳出多层嵌套循环结构,可以使用异常。Python不提供 “goto” 语句。

else 语句

在循环结构中也可以加入 else 语句,例如:

# -*- coding:utf-8 -*-

for line in open('test.txt', 'r'):

stripped = line.strip()

if not stripped:

break

print stripped

else:

raise RuntimeError('Missing selection separator')

else 语句只在循环运行完成后才会执行。但是,如果先一步使用break语句中止了循环,else 子句将被跳过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值