您的位置:首页 > 编程语言 > Python开发

13.1Python基础拾遗(1):迭代器

2018-03-20 21:53 204 查看
@可迭代对象iterable

迭代就是逐个审查,但不一定要完成全部遍历(这是迭代与遍历的区别);

可迭代对象就是由若干并列的子元素集合而成的对象;

常见的容器和字符串都属于可迭代对象;

# 字符串和常见的容器都是可迭代对象iterable
miterable = "hello"
miterable = (1,2,3,4,5)
miterable = [1,2,3,4,5]
miterable = {1,2,3,4,5}

# 迭代器访问字典时,迭代出来的元素为键
miterable = {1:"hello",2:345,3:None,4:[1,2,3],5:""}


# 可迭代对象的简易遍历
for item in it:
print(item)


@迭代器

基于一个可迭代对象,我们可以创建它的迭代器;

有了迭代器,我们就可以对可迭代对象中的元素进行逐个审查(但不一定要完成遍历);

# 创建基于iterable的迭代器
it = iter(miterable)


@迭代器的迭代操作

# 迭代器的简易遍历
for item in it:
print(item)


通过next(it)的方式,可以对迭代器进行轮询迭代;

但迭代已经完成时继续迭代,系统会抛出StopIteration异常;

# 通过next(it)逐个访问
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))

# 迭代已
bb3b
经完成时继续迭代,系统会抛出StopIteration异常
print(next(it))


使用next(it)配合异常捕获,我们可以实现对迭代器的完整遍历:

# 遍历到越界时会抛出StopIteration异常
while True:
try:
print(next(it))
except StopIteration:
break
print("over")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: