python3学习笔记:手动访问迭代器中的元素

2020-02-26  本文已影响0人  潼潼夏

问题

不使用for循环,处理某个可迭代对象中的元素。

解决方案

要手动访问可迭代对象中的元素,可以使用next()函数,然后自己编写代码来捕捉StopIteration异常。例如,采用手工的方式从文件passwd中读取文本行:

#passwd
123abc
aaa
dedeow
345dibe
with open('passwd') as f:
    try:
        while True:
            line = next(f)
            print (line, end='')
    except StopIteration:
        pass
#输出结果
#123abc
#aaa
#dedeow
#345dibe

一般来说,StopIteration异常是用来通知我们迭代结束的,但是,如果是手动使用next(),也可以命令它返回一个结束值,比如说None。示例如下:

with open('passwd') as f:
    while True:
        line = next(f,None)
        if line is None:
            break
        print (line, end='')
#输出结果
#123abc
#aaa
#dedeow
#345dibe
上一篇 下一篇

猜你喜欢

热点阅读