python -- 迭代器

Posted teachertao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于python -- 迭代器的主要内容,如果未能解决你的问题,请参考以下文章

Python迭代器

25Python之迭代器

python迭代器 iterator

Python中的迭代器

2020Python修炼记20Python语法入门—迭代器

python的迭代器