python iter() 与 next()

python 中 iter() 与next()的基本使用

iter() 与 next() 分别用于得到可迭代对象的迭代器以及对迭代器数据的获取

可迭代对象一般分为集合,元组,字典,列表等几类容器。

在这里插入代码片
from collections.abc import Iterable

city=("北京","上海","广州","深圳")  #可迭代对象

print(isinstance(city,Iterable))   #True

city_iter=iter(city)  #获取迭代器

#print(isinstance(city_iter))  #TypeError

# for city_item in city_iter:
#     print(city_item)

print(next(city_iter))  #北京
print(next(city_iter))  #上海
print(next(city_iter))  #广州
print(next(city_iter))  #深圳
print(next(city_iter))  # ERROR : StopIteration

city 为可迭代对象,这里用isinstance(city,Iterable) 测试结果返回***True*** 
city_iter 为得到的迭代器  isinstance(city,Iterable) 测试结果***报错*** 可知这时的city_iter 已经不是Iterable 对象。

next()方法用于返回迭代器中的数据,单次调用只返回一个数据,再次调用返回下一数据。当迭代器中的数据全部返回(数据位置已经指向最后一个)不能再调用next() 否则报错 stopIteration

你可能感兴趣的:(迭代器与生成器)