python -- 迭代器

一、迭代器(Iterator)

迭代器是一个可以记住遍历位置的对象。

它从集合的第一个元素开始,直到集合所有元素被访问完结束。

字符串、列表、字典、元组、集合都是可迭代的。(但不一定是迭代器)

迭代器有两个最基本的方法:

iter() :用于创建迭代对象(创建后方可进行for...in ... 迭代)

next() :用于访问迭代器中的下一个元素

next() 是单向的,一次只能获取一个元素,获取到最后的元素后停止,只能向前遍历,不能后退

迭代器在处理大量数据,甚至是无限数据时具有加载数据快、占用内存小的优势,在Python中广泛应用 。

from collections import Iterable  #可迭代对象
from collections import Iterator #迭代器


# -----------------------------------------
# 迭代器(Iterator)
# -----------------------------------------
# 用for循环遍历集合元素
cities = ['北京', '上海', '广州', '深圳']
for city in cities:
print(city)
print()

t = (100, 200, 300)
s = {'a', 'b', 'c'}
d = {'a': 100, 'b': 200, 'c': 300}
c = '南京'

# 判断是否为可迭代对象
print(isinstance(cities, Iterable))
print(isinstance(t, Iterable))
print(isinstance(s, Iterable))
print(isinstance(d, Iterable))
print(isinstance(c, Iterable))
print()

# 判断是否为迭代器(是可迭代对象非迭代器)
print(isinstance(cities, Iterator))
print(isinstance(t, Iterator))
print(isinstance(s, Iterator))
print(isinstance(d, Iterator))
print(isinstance(c, Iterator))

# 使用迭代器访问列表
cities = ['北京', '上海', '广州', '深圳']
i = iter(cities) # 创建迭代器对象(才可进行遍历)
# 使用常规的for语句进行遍历
for city in i:
print(city)
print()

cities = ['北京', '上海', '广州', '深圳']
i = iter(cities)
# 使用next()函数进行遍历,等价于for...in循环
while True:
try:
print(next(i))
except StopIteration:
print("停止迭代")
break

猜你喜欢

转载自www.cnblogs.com/Teachertao/p/11229186.html